更多關於任務
首先:運算子 <<(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!
所有關於開發的問題都會將外掛插入官方網站