更多關於任務
首先:運算子 <<
(leftShift)相當於 doLast {closure}
。從 gradle 3.2 開始,不推薦使用。所有任務程式碼都在 build.gradle 中編寫。
任務代表構建執行的一些原子工作。這可能是編譯某些類,建立 JAR,生成 Javadoc 或將一些存檔釋出到儲存庫。
Gradle 支援兩大類任務:簡單和增強。
我們來看一些任務定義樣式:
task hello {
doLast{
//some code
}
}
或者:
task(hello) {
doLast{
//some code
}
}
上述任務是等價的。此外,你可以為任務提供一些擴充套件,例如:dependsOn
,mustRunAfter
,type
等。你可以通過在任務定義後新增操作來擴充套件任務,如下所示:
task hello {
doLast{
println 'Inside task'
}
}
hello.doLast {
println 'added code'
}
當我們執行此操作時,我們得到:
> gradle -q hello
Inside task
added code
這裡檢查有關任務依賴性和排序的問題
我們來談談兩大類任務。
簡單:
我們使用動作閉包定義的任務:
task hello {
doLast{
println "Hello from a simple task"
}
}
增強
增強它是一項具有預配置行為的任務。你在專案中使用的所有外掛都是擴充套件或增強的任務。讓我們建立我們的,你將瞭解它是如何工作的:
task hello(type: HelloTask)
class HelloTask extends DefaultTask {
@TaskAction
def greet() {
println 'hello from our custom task'
}
}
此外,我們可以將引數傳遞給我們的任務,如下所示:
class HelloTask extends DefaultTask {
String greeting = "This is default greeting"
@TaskAction
def greet() {
println greeting
}
}
從現在開始,我們可以像這樣重寫我們的任務:
//this is our old task definition style
task oldHello(type: HelloTask)
//this is our new task definition style
task newHello(type: HelloTask) {
greeting = 'This is not default greeting!'
}
當我們執行此操作時,我們得到:
> gradle -q oldHello
This is default greeting
> gradle -q newHello
This is not default greeting!
所有關於開發的問題都會將外掛插入官方網站