Gradle構建JAVA項目
本章介紹如何使用Gradle構建文件來構建一個Java項目。 首先,我們必須向構建腳本中添加Java插件,因爲它提供了編譯Java源代碼,運行單元測試,創建Javadoc和創建JAR文件的任務。 在build.gradle
文件中使用以下代碼行。
apply plugin: 'java'
怎麼樣,是不是很簡單?
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版本
通常,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
文件。