更多關於任務

首先:運算子 <<(leftShift)相當於 doLast {closure}。從 gradle 3.2 開始不推薦使用。所有任務程式碼都在 build.gradle 中編寫。

任務代表構建執行的一些原子工作。這可能是編譯某些類,建立 JAR,生成 Javadoc 或將一些存檔釋出到儲存庫。

Gradle 支援兩大類任務:簡單和增強。

我們來看一些任務定義樣式:

task hello {
    doLast{
       //some code
    }    
}

或者:

task(hello) {
    doLast{
       //some code
    }    
}

上述任務是等價的。此外,你可以為任務提供一些擴充套件,例如:dependsOnmustRunAftertype 等。你可以通過在任務定義後新增操作來擴充套件任務,如下所示:

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!

所有關於開發的問題都會將外掛插入官方網站