
Gradle - 構建Java專案
本章介紹如何使用 Gradle 構建檔案構建 Java 專案。
首先,我們必須在構建指令碼中新增 Java 外掛,因為它提供了編譯 Java 原始碼、執行單元測試、建立 Javadoc 和建立 JAR 檔案的任務。
在 **build.gradle** 檔案中使用以下行。
apply plugin: 'java'
Java 預設專案佈局
每當你向構建中新增外掛時,它都會假設你的 Java 專案的某些設定(類似於 Maven)。請檢視以下目錄結構。
- src/main/java 包含 Java 原始碼。
- src/test/java 包含 Java 測試。
如果你遵循此設定,則以下構建檔案足以編譯、測試和捆綁 Java 專案。
要開始構建,請在命令列中鍵入以下命令。
C:\> gradle build
**SourceSets** 可用於指定不同的專案結構。例如,原始碼儲存在 **src** 資料夾中,而不是 **src/main/java** 中。請檢視以下目錄結構。
apply plugin: 'java' sourceSets { main { java { srcDir 'src' } } test { java { srcDir 'test' } } }
init 任務執行
Gradle 還不支援多個專案模板。但它提供了一個 **init** 任務來建立新的 Gradle 專案的結構。在沒有額外引數的情況下,此任務會建立一個 Gradle 專案,其中包含 Gradle 包裝器檔案、**build.gradle** 和 **settings.gradle** 檔案。
當使用 **--type** 引數並將 **java-library** 作為值新增時,將建立一個 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。可以在 **build.gradle** 檔案中設定 **version** 和 **sourceCompatibility** 屬性。
version = 0.1.0 sourceCompatibility = 1.8
如果工件是可執行的 Java 應用程式,則 **MANIFEST.MF** 檔案必須知道包含 main 方法的類。
apply plugin: 'java' jar { manifest { attributes 'Main-Class': 'com.example.main.Application' } }
示例
建立如下所示的目錄結構。

將下面給出的 Java 程式碼複製到 App.java 檔案中,並存儲到 **consumerbanking\src\main\java\com\bank** 目錄中。
package com.bank; /** * Hello world! * */ public class App { public static void main( String[] args ){ System.out.println( "Hello World!" ); } }
將下面給出的 Java 程式碼複製到 AppTset.java 檔案中,並存儲到 **consumerbanking\src\test\java\com\bank** 目錄中。
package com.bank; /** * Hello world! * */ public class App{ public static void main( String[] args ){ System.out.println( "Hello World!" ); } }
將下面給出的程式碼複製到 build.gradle 檔案中,並放置到 **consumerbanking\** 目錄中。
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.example.main.Application' } }
要編譯並執行上述指令碼,請使用以下命令。
consumerbanking\> gradle tasks consumerbanking\> gradle assemble consumerbanking\> gradle build
檢查各個目錄中的所有類檔案,並檢查 **consumerbanking\build\lib** 資料夾中的 **consumerbanking.jar** 檔案。