如果不满足条件,我将尝试使用onlyIf()停止执行任务。有没有办法我也可以阻止任务依赖项的执行?仅似乎如果不停止依赖关系的执行。

在下面的示例中,我希望在我将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

最佳答案

实现此目的的一种方法是使用以下命令同时向两个任务添加“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

关于gradle - gradle-忽略dependsOn任务执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32275884/

10-12 23:01