調用任務我知道,從另一個任務調用任務的當前支持的方法是使用dependsOn
或finalizedBy
,但我碰到這個問題。gradle這個:從另一個任務
我有個任務,taskA
,也可用它自己。我有另一個任務,taskB
,當被調用時,將取決於taskA
。問題是taskB
有其他條件,如果任務失敗,則需要跳過該任務。這是我要的工作流程:
$ gradle taskA
:taskA
BUILD SUCCESSFUL
$ gradle taskB
checking condition 1... PASS
checking condition 2... PASS
:taskA
:taskB
BUILD SUCCESSFUL
$ gradle taskB
checking condition 1... PASS
checking condition 2... FAIL
:taskA SKIPPED
:taskB SKIPPED
BUILD SUCCESSFUL
如果直接調用,或從不同的任務doFirst
或dependsOn
什麼的,taskA
應該不管條件執行。但是,如果調用taskB
,則在執行taskA
之前必須通過條件。以下是我已經試過:
project.tasks.create(name: "taskB", type: MyTask, dependsOn: "taskA")
project.taskB{
onlyIf {
if (!conditionA()){
return false
}
if (!conditionB()){
return false
}
return true
}
}
這裏的問題是,taskB
被檢查onlyIf
之前taskA
將執行,所以即使條件不滿足,taskA
將執行。
我該如何做到這一點?
'gradle'變量來自哪裏? – ewok
可能值得注意的是,這不會發生在我的'build.gradle'文件中。這是在一個單獨的Groovy文件中,用於配置插件 – ewok
@ewok,一個單獨的配置插件的groovy文件?它是如何工作的? 'gradle'在'project'實例上被定義爲從其他地方取出的所有其他變量;} – Opal