天天看點

Gradle學習筆記(1)建立簡單的Java項目

  Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化建構工具。它使用一種基于Groovy的特定領域語言(DSL)來聲明項目設定,抛棄了基于XML的各種繁瑣配置。目前其支援的語言限于Java、Groovy、Kotlin和Scala,主要面向Java應用。

  本次分享将具體講述如何利用Gradle來建立一個簡單的Java項目。

  首先我們建立一個檔案夾javaProgram作為展示的Java項目。

  接着輸入以下指令進行項目布局:

cd javaProgram
touch build.gradle
mkdir -p src/main/java
mkdir -p src/main/resources
mkdir -p src/test/java
mkdir -p src/test/resources           

先建立了build.gradle,這是我們用Gradle來建立項目必不可少的gradle檔案。build.gradle中的代碼如下:

apply plugin: 'java'           

這是用來定義Java項目。接着建立檔案夾,這是Java項目開發中習慣性的建構方法。

  布局完畢後,我們就可以加入自己的packagele. 在/src/main/java中建立guess檔案夾,在該檔案夾下建立GuessNumber.java,其完整代碼如下:

package guess;

import java.util.Scanner;

public class GuessNumber {

    public static void main(String[] args) {
        //Generate a number to be guessed
        int number = (int)(Math.random()*101);

        Scanner input = new Scanner(System.in);
        System.out.println("Guess a number between 0 and 100");

        int guess = -1;
        while(guess != number) {
            //Prompt the user to guess the number
            System.out.print("\nEnter your guess: ");
            guess = input.nextInt();

            if(guess == number) 
                System.out.println("Yes, the number is "+number);
            else if(guess > number) 
                System.out.println("Your guess is too high!");
            else
                System.out.println("Your guess is too low!");
        }//End of loop
    }
}           

該代碼用于模拟猜數字遊戲,具體代碼并不是本次分享的重點。

  再切換到javaProgram下,運作以下指令來建構項目:

gradle build           

運作結果如下:

此時我們發現javaProgram檔案夾下會多出build檔案夾,如下圖:

其中build檔案夾的樹形結構如下:

可以看到,在build/libs檔案夾下生成了javaProgram.jar包,而這正是我們需要的jar包。嘗試着運作這個jar包:

運作出錯,并且出錯資訊為“no main manifest attribute”,這是因為我們并沒有在jar包中配置主類(main class).

  是以,接下來的一步,也是最後一步:配置main class. 這隻需要将build.gradle中修改如下:

apply plugin: 'java' 

jar { 
    manifest { 
        attributes 'Main-Class': 'guess.GuessNumber' 
    } 
}           

再次運作“gradle build”建立(build)項目,将會重新生成javaProgram.jar包。

  我們嘗試着再次運作jar包,如下圖:

bingo,終于運作成功了!這對于一個初學Gradle的人來說,是一件多人令人歡欣鼓舞的事情!

  本次分享到此結束,歡迎大家交流~~