## Behaviour
之前在學習的時候說到了可以給任務添加行為behaviour,看一下下面的例子:
~~~
task hello << {
println 'Hello Earth'
}
hello.doFirst {
println 'Hello Venus'
}
hello << {
println 'Hello Jupiter'
}
hello.doLast {
println 'Hello Mars'
}
~~~
輸出如下:
~~~
D:\gradle_product\0123>gradle -q hello
Hello Venus
Hello Earth
Hello Jupiter
Hello Mars
~~~
doFirst和doLast這些標識就是行為,代表你所定義的hello任務的一些附加行為,不同等級的行為,跟你在build.gradle中定義的順序是沒關系的,但是同一等級的就有關系,誰先定義的,就會先執行那一部分。
## 不同等級
比如我們將doFirst和doLast的位置調換,看執行的順序:
~~~
task hello << {
println 'Hello Earth'
}
hello << {
println 'Hello Jupiter'
}
hello.doLast {
println 'Hello Mars'
}
hello.doFirst {
println 'Hello Venus'
}
~~~
輸出:
~~~
D:\gradle_product\0123>gradle -q hello
Hello Venus
Hello Earth
Hello Jupiter
Hello Mars
~~~
經過實際驗證,輸出是沒有變化的。
## 相同等級
比如hello.doLast和hello<<所定義的行為屬于相同等級,都是在hello任務執行完再執行。這個時候的執行順序是跟你定義的順序是有關系的,比如我們將上面的hello<<移到doLast后面
~~~
task hello << {
println 'Hello Earth'
}
hello.doLast {
println 'Hello Mars'
}
hello << {
println 'Hello Jupiter'
}
hello.doFirst {
println 'Hello Venus'
}
~~~
輸出:
~~~
D:\gradle_product\0123>gradle -q hello
Hello Venus
Hello Earth
Hello Mars
Hello Jupiter
~~~
- 前言
- gradle學習(1)-helloworld
- gradle學習(2)-基礎語法
- gradle學習(3)-基礎認識
- gradle學習(4)-構建java項目
- gradle學習(5)-創建eclipse項目
- gradle學習(6)-依賴管理
- gradle學習(7)-groovy
- gradle學習(8)-gradle的命令行
- gradle學習(9)-獲取build相關信息
- gradle學習(10)-gui
- gradle學習(11)-編寫構建腳本
- gradle學習(12)-groovy一些基礎語法
- gradle學習(13)-有的沒的
- gradle學習(14)-任務
- gradle學習(15)-任務
- gradle學習(16)-操作文件
- gradle學習(17)-被合并的ant
- gradle學習(18)-ant的屬性
- gradle學習(19)-log系統
- gradle學習(20)-詳解java插件
- gradle學習(21)-在eclipse中構建java項目
- gradle復習(1)-2種定義任務方式的區別
- gradle復習(2)-eclipse中添加依賴jar包
- gradle復習(3)-在gradle項目中使用TestNG
- gradle復習(4)-Cannot find System Java Compiler
- gradle復習(5)-Test remote debug
- gradle復習(6)-深入Jacoco
- gradle復習(7)-深入Jacoco
- gradle復習(8)-Task中行為
- gradle學習(22)-Sonar
- gradle學習(23)-Sonar runner