前言
首先,我也是一個Gradle小白,目前所瞭解到的Gradel是個自動化構建工具,可以幫助我們自動管理依賴,編譯、打包程序。至於它的優缺點以及工作流程並不是很熟悉。正是因爲如此,才需要系統的學習gradle。個人認爲一個技術或者一個框架,如果經常使用它,系統的去學習是最快掌握它的方法。
本篇是根據官網的教程 Building Java Applications整理而來,主要是知道Gradle的一下幾個基本概念
- 如何使用Gradel創建一個Java應用程序
- 瞭解內置組件Build Init plugin
- 熟悉Gradel創建Java項目的基本結構
- 瞭解Gradel生成的文件的基本格式
使用Gradle構建Java應用程序
創建項目目錄
mkdir demo-java-application
cd demo-java-application
執行init指令
gradle init
Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 2
Select implementation language:
1: C++
2: Groovy
3: Java
4: Kotlin
5: Swift
Enter selection (default: Java) [1..5] 3
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2] 1
Select test framework:
1: JUnit 4
2: TestNG
3: Spock
4: JUnit Jupiter
Enter selection (default: JUnit 4) [1..4] 1
Project name (default: demo-java-application):
Source package (default: demo.java.application): com.demo.gradle.application
> Task :init
Get more help with your project: https://docs.gradle.org/6.3/userguide/tutorial_java_projects.html
BUILD SUCCESSFUL in 41s
2 actionable tasks: 1 executed, 1 up-to-date
這裏對Gradle Init plugin做一個介紹。init 指令是Gradle Init plugin內置的一個指令,用來創建不同類型的Gradle應用程序,比如java,C++,Grovvy等等,還可以將maven構建的程序轉換爲gradle構建。同時它還調用了wrapper指令生成了Gradle Wrapper文件(對於Gradle Wrapper文件後續瞭解)。
目錄結構
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
│ ├── java
│ │ └── demo
│ │ └── App.java
│ └── resources
└── test
├── java
│ └── demo
│ └── AppTest.java
└── resources
如果知道maven,可以看到和maven的基本格式一致,只不過多了一些gradel的配置文件
文件格式概覽
settings.gradle
rootProject.name = 'demo-java-application'
是一個非常重要的配置,只是標記了項目名稱,個人理解可能在多模塊項目中起到根目錄的作用,暫時忽略其意義。
build.gradle
plugins {
id 'java'
id 'application'
}
repositories {
jcenter()
}
dependencies {
implementation 'com.google.guava:guava:28.2-jre'
testImplementation 'junit:junit:4.12'
}
application {
mainClassName = 'com.demo.gradle.application.App'
}
這是gradel構建的核心配置文件,裏面包含了插件配置,倉庫配置,依賴管理還有項目配置等信息。本篇只做簡單瞭解,因爲我也不會。如果類比Maven的話,應該是pom.xml
執行構建命令
./gradlew build
> Task :compileJava
> Task :processResources NO-SOURCE
> Task :classes
> Task :jar
> Task :startScripts
> Task :distTar
> Task :distZip
> Task :assemble
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
> Task :test
> Task :check
> Task :build
BUILD SUCCESSFUL
7 actionable tasks: 7 executed
構建完成後多了一個build文件夾
查看測試報告
gradle會自動執行單測類,並且以htlm的方式給出了測試報告,報告存放在build/reports/tests/test/index.html
運行程序
gradel自帶了run命令用來執行程序,入口類就是配置中的build.gradle–>application->mainClassName
./gradlew run
> Task :run
Hello world.
BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date
總結
這就是使用Gradel構建一個java應用程序的完整流程,當然工作中肯定不會這麼使用。但是實際操作一遍有助於我們瞭解Gradle的執行流程以及它的基本概念。
所以從這篇文章我們可以瞭解到
- 如何使用Gradle創建Java應用程序
- 知道使用Gradle創建的Java應用程序基本的目錄結構和配置文件
- 如何使用Gradle構建Java應用程序和察看測試報告
- 使用Gradle執行java應用程序