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.gradlesettings.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,在其上編譯它。versionsourceCompatibility屬性可以在build.gradle檔中設置。

version = 0.1.1
sourceCompatibility = 1.8

如果這是一個可執行的Java應用程式,MANIFEST.MF檔必須要指定具有main方法的類。

apply plugin: 'java'

jar {
   manifest {
      attributes 'Main-Class': 'com.zaixian.main.Application'
   }
}

讓我們考慮一個例子。創建一個目錄結構,如下面的螢幕截圖所示。

將以下Java代碼複製到App.java檔中,並將其存儲到 D:/worksp/gradle/src/main/java/com/zaixian 目錄中。

package com.zaixian;

/**
* 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/zaixian目錄中。

package com.zaixian;

/**
* 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.zaixian.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檔。


上一篇: Gradle運行構建 下一篇: Gradle構建Groovy專案