天天看點

使用gradle構造Java工程

大家學習一個新工具,第一步一般是在自己的機器上手動安裝其。

打開工作空間,建立目錄結構如下:

└── src
    └── main
        └── java
            └── hello      

 之是以要這樣,是因為gradle的Java插件預設掃描這樣的目錄來查找Java代碼。

hello是我們的包,在裡面建立Java類。比如:

package hello;
import org.joda.time.LocalTime;
public class HelloWorld {
  public static void main(String[] args) {
    LocalTime currentTime = new LocalTime();
    System.out.println(currentTime);
    Greeter greeter = new Greeter();
    System.out.println(greeter.sayHello());
  }
}      

 和

package hello;

public class Greeter {
  public String sayHello() {
    return "Hello world!";
  }
}      

接下來建立gradle配置檔案build.gradle:

apply plugin: 'java'

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile "joda-time:joda-time:2.2"
}

jar {
    baseName = 'gs-gradle'
    version =  '0.1.0'
}      

 第一行申明使用Java插件。因為gradle不是隻支援Java,其他很多語言也可以通過gradle建構。是以gradle沒有預設使用Java插件。

後面申明使用maven的庫,後面是代碼版本,然後是依賴申明,這裡為了示範,使用了joda。後面是建構為jar包的配置,建構後jar的名稱就是gs-gradle-0.1.0.jar。

現在在根目錄(也就是build.gradle的目錄)執行

gradle build      

 就會看到結果。

然後我們繼續。

打開buidl.gradle檔案,在最下面增加一個任務:

task wrapper(type: Wrapper) {
    gradleVersion = '2.3'
}      

 儲存後執行

gradle wrapper      

 你會發現生成了不少新東西,比如gradlew。這些東西類似于綠色版gradle下載下傳器。是以如果是團隊合作開發,隻要大家都從版本控制伺服器下載下傳了你那個buidl.gradle,大家執行的結果就一樣。

然後我們執行

gradlew build      

 它會開始下載下傳相應版本的gradle(版本就是上面task wrapper指定的),然後自動建構。

這個時候,如果你興高采烈的跑去執行

gradlew run      

 ,會發現不可以。

為了讓jar包能執行,我們繼續修改build.gralde:

apply plugin: 'application'

mainClassName = 'hello.HelloWorld'      

 應用了application插件,并指明了主類。

然後執行gradle run,就可以正常輸出了。