上手驗證一下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
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-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。任務動做定義了一個最小的工做單元。主要包括任務動做和任務依賴。能夠定義依賴於其餘任務、動做序列和執行條件。
任務之間的依賴:
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 依賴管理