本章介紹如何使用Gradle構建檔案來構建一個Java專案。 首先,我們必須向構建指令碼中新增Java外掛,因為它提供了編譯Java原始碼,執行單元測試,建立Javadoc和建立JAR檔案的任務。 在build.gradle
檔案中使用以下程式碼行。
apply plugin: 'java'
怎麼樣,是不是很簡單?
每當新增一個外掛到構建中,它會假設一個特定的Java專案設定(類似於Maven)。看看下面的目錄結構。
src/main/java
目錄包含Java原始碼;src/test/java
目錄包含測試用的原始碼;如果遵循上面設定,以下構建檔案足以編譯,測試並綑綁Java專案。
要啟動構建,請在命令列上鍵入以下命令。
D:/worksp/gradle> gradle build
SourceSets可用於指定不同的專案結構。例如,指定原始碼儲存在src
檔案夾中,而不是在src/main/java
中。 看看下面的目錄結構。
apply plugin: 'java'
sourceSets {
main {
java {
srcDir 'src'
}
}
test {
java {
srcDir 'test'
}
}
}
Gradle還不支援多個專案模板。但它提供了一個init來初始化任務來建立一個新的Gradle專案的結構。如果沒有指定其他引數,任務將建立一個Gradle專案,其中包含gradle包裝器檔案,build.gradle
和settings.gradle
檔案。
當使用java-library
作為值並新增--type
引數時,將建立一個java專案結構,build.gradle
檔案包含帶有Junit的某個Java模板。 看看下面build.gradle
檔案的程式碼。
apply plugin: 'java'
repositories {
jcenter()
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.12'
testCompile 'junit:junit:4.12'
}
在倉庫(repositories
)這部分中,它定義了要從哪裡找到依賴。Jcenter是為了解決依賴問題。 依賴關係(dependencies
)部分用於提供有關外部依賴關係的資訊。
通常,Java專案要有一個版本和一個目標JRE,在其上編譯它。version
和sourceCompatibility
屬性可以在build.gradle
檔案中設定。
version = 0.1.1
sourceCompatibility = 1.8
如果這是一個可執行的Java應用程式,MANIFEST.MF
檔案必須要指定具有main方
法的類。
apply plugin: 'java'
jar {
manifest {
attributes 'Main-Class': 'com.yiibai.main.Application'
}
}
讓我們考慮一個例子。建立一個目錄結構,如下面的螢幕截圖所示。
將以下Java程式碼複製到App.java
檔案中,並將其儲存到 D:/worksp/gradle/src/main/java/com/yiibai
目錄中。
package com.yiibai;
/**
* Hello world!
*
*/
public class App {
public static void main( String[] args ){
System.out.println( "Hello World, Gradle Build Work! " );
}
}
將以下Java程式碼複製到AppTset.java
檔案中,並儲存到D:/worksp/gradle/src/test/java/com/yiibai
目錄中。
package com.yiibai;
/**
* Hello world!
*
*/
public class App{
public static void main( String[] args ){
System.out.println( "Hello World!" );
}
}
將以下程式碼複製到build.gradle
檔案中,並放入 D:/worksp/gradle
目錄。
apply plugin: 'java'
repositories {
jcenter()
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.12'
testCompile 'junit:junit:4.12'
}
jar {
manifest {
attributes 'Main-Class': 'com.yiibai.main.App'
}
}
要編譯和執行上述指令碼,請使用以下命令。
D:/worksp/gradle> gradle tasks
....
D:/worksp/gradle> gradle assemble
....
D:/worksp/gradle> gradle build
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
Total time: 1.638 secs
檢視相應目錄中的所有類檔案,並檢查 D:/worksp/gradle/build/libs
檔案夾中,應該會有一個 gradle.jar
檔案。