Task 規(guī)則

2018-07-01 16:14 更新

有時候也想要一個任務(wù)的行為是基于已經(jīng)定義好的取值范圍或者特定規(guī)則, 下面的例子就提供了一種很直觀漂亮的方式:

例子 15.25. 任務(wù)規(guī)則

build.gradle

tasks.addRule("Pattern: ping<ID>") { String taskName ->
    if (taskName.startsWith("ping")) {
        task(taskName) << {
            println "Pinging: " + (taskName - 'ping')
        }
    }
}

gradle -q pingServer1 的輸出

> gradle -q pingServer1
Pinging: Server1

這里的 String 參數(shù)就是用來定義規(guī)則的.

規(guī)則并不只是在通過命令行使用任務(wù)的時候執(zhí)行. 你也可以基于規(guī)則來創(chuàng)建依賴關(guān)系:

例子 15.26. 基于規(guī)則的任務(wù)依賴

build.gradle

tasks.addRule("Pattern: ping<ID>") { String taskName ->
    if (taskName.startsWith("ping")) {
        task(taskName) << {
            println "Pinging: " + (taskName - 'ping')
        }
    }
}

task groupPing {
    dependsOn pingServer1, pingServer2
}

gradle -q groupPing 的輸出

> gradle -q groupPing
Pinging: Server1
Pinging: Server2

如果你運行 “gradle -q tasks”, 你并不能找到名叫 “pingServer1” 或者 “pingServer2” 的任務(wù), 但是這個腳本仍然會執(zhí)行這些任務(wù).


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號