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'
   }
}

示例

建立如下所示的目錄結構。

Directory Structure

將下面給出的 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** 檔案。

廣告