gradle整理

第1章 課程介紹

第2章 準備使用Gradle

 

 

 

 

 

 

 

 

 

上手驗證一下Gradle的特性java

1.搭載環境web

 

 

 

 

 

 

 

 

 2.代碼驗證api

代碼1:app

 1 class Student {
 2 
 3     private String name
 4     private int age
 5 
 6     Student(String name, int age) {
 7         this.name = name
 8         this.age = age
 9     }
10 
11     @Override
12     String toString() {
13         return "Student{" +
14                 "name='" + name + '\'' +
15                 ", age=" + age +
16                 '}'
17     }
18 }
19 
20 def stu1 = new Student("張帆", 21)
21 def stu2 = null
22 
23 println stu1.name
24 println stu1 == stu2

結果以下:webapp

張帆
false

 

第3章 第一個Gradle項目

 

1.環境搭建maven

 

2.項目目錄ide

3.建立實體類對象TodoItem和測試類App測試

TodoItem.javagradle

 1 public class TodoItem {
 2 
 3     private String name;
 4 
 5     private boolean hasDone;
 6 
 7     public TodoItem(String name) {
 8         this.name = name;
 9     }
10 
11     public String getName() {
12         return name;
13     }
14 
15     public void setName(String name) {
16         this.name = name;
17     }
18 
19     public boolean isHasDone() {
20         return hasDone;
21     }
22 
23     public void setHasDone(boolean hasDone) {
24         this.hasDone = hasDone;
25     }
26 
27     @Override
28     public String toString() {
29         return name + (hasDone == true ? " has Done" : " need to do");
30     }
31 }

App.javaui

 1 import java.util.Scanner;
 2 
 3 public class App {
 4 
 5     public static void main(String[] args) {
 6         Scanner scan = new Scanner(System.in);
 7         TodoItem item = new TodoItem(scan.next());
 8         System.out.println(item);
 9 
10     }
11 }

4.測試

 

第4章 高級應用

4-1 構建腳本基本介紹

項目(Project)

一個項目對應一個project實例,gradle根據build.gradle配置內容實例化一個org.gradle.api.Project類;

project屬性有group, name, version

方法有apply, repositories, dependencies, task

屬性的其餘配置方式能夠經過 : ext,  gradle.properties

任務(Task)

任務對應org.gradle.api.Task。任務動做定義了一個最小的工做單元。主要包括任務動做和任務依賴。能夠定義依賴於其餘任務、動做序列和執行條件。

任務之間的依賴:

  • dependsOn
  • doFirst      doLast      <<
task hello {
    doLast {
        println 'Hello world!'
    }
}

快捷的定義方式,使用<< 代替 doLast{} 

<< 操做符是 doLast 的簡單別稱。

task helloWorld << {
        println 'helloWorld343'
}

默認任務定義,調用任何任務都會執行的任務,沒有<< 也米有doLast{}

task defaultmytask {
    println 'ddddddd'
}

看看下面的代碼:

1 task hello << {
2     println 'Hello world!'
3 }
4 5 task intro(dependsOn: hello) << {
6     println "I'm Gradle"
7 }

說明:intro 依賴於 hello, 因此執行 intro 的時候 hello 命令會被優先執行來做爲啓動 intro 任務的條件。在加入一個依賴以前, 這個依賴的任務不須要提早定義。

動態任務:下面的times是遍歷,counter是遍歷的變量名

4.times { counter ->
    task "task$counter" << {
        println "I'm task number $counter"
    }
}

 

4-2 自定義任務

目標:定義兩個任務,目標分別是當建立的Java項目和Web項目的目錄不完整時,進行目錄填補。

build.gradle

 1 plugins {
 2     id 'java'
 3 }
 4 
 5 
 6 group 'com.angei'
 7 version '1.0-SNAPSHOT'
 8 
 9 sourceCompatibility = 1.8
10 
11 repositories {
12     mavenCentral()
13 }
14 
15 dependencies {
16     testCompile group: 'junit', name: 'junit', version: '4.12'
17 }
18 
19 def createDir = { 20     path ->
21         File file = new File(path); 22         if(!file.exists()){ 23  file.mkdir(); 24  } 25 } 26 
27 task makeJavaDir(){ 28     def paths = ['src/main/java','src/main/resources','src/test/java','src/test/resources']; 29  doFirst{ 30  paths.forEach(createDir); 31  } 32 } 33 
34 task makeWebDir(){ 35     dependsOn 'makeJavaDir'
36     def paths = ['src/main/webapp','src/test/webapp']; 37  doLast{ 38  paths.forEach(createDir); 39  } 40 }

右側導航新出現兩個咱們自定義的任務:

點擊運行後效果:

4-3 構建生命週期

 

4-4 依賴管理

 

附:Maven中央倉庫的地址

 

相關文章
相關標籤/搜索