gradle - 忽略dependsOn任务执行

时间:2015-08-28 16:40:25

标签: gradle build.gradle

如果不满足条件,我试图仅使用if()停止执行任务。有没有办法可以阻止任务依赖从执行?似乎只是不会停止执行的依赖。

在下面的示例中,我希望在将executeMe参数传递为false时不执行taskA。

的build.gradle

task taskA() {
    doFirst {
        println 'executing taskA'
    }
}

task taskB(dependsOn: 'taskA') {
    onlyIf {
        executeMe.toBoolean()
    }
    doFirst {
        println 'executing taskB'
    }
}

运行输出:

>gradle taskB -PexecuteMe=false
10:39:36 AM: Executing external task 'taskB -PexecuteMe=false'...
:taskA
executing taskA
:taskB SKIPPED

1 个答案:

答案 0 :(得分:3)

您可以通过添加" onlyIf"使用以下内容同时执行两个任务:

task taskA() {
    doFirst {
        println 'executing taskA'
    }
}

task taskB(dependsOn: 'taskA') {    
    doFirst {
        println 'executing taskB'
    }
}

[taskA, taskB].each { task ->
    task.onlyIf {
        executeMe.toBoolean()
   }    
}

输出:

$ gradle taskB -PexecuteMe=false
:taskA SKIPPED
:taskB SKIPPED

BUILD SUCCESSFUL

Total time: 2.122 secs