Gradle-StopExecutionException不';不能更改任务状态

Gradle-StopExecutionException不';不能更改任务状态,gradle,Gradle,我有三个梯度任务:A、B和B2。它们以以下方式相互依赖:StopExecutionException只是完成任务执行的快捷方式。如果按照您可以读入的方式抛出该任务,则该任务不会失败,也不会跳过该任务。您可以抛出GradleException使任务失败,然后后续任务将能够检查结果。请注意,您需要更改B2以使其成为B的最终任务(请参阅),或者使用runAfter或类似的操作。旨在停止任务B的例外。我想知道的是,我是否可以在任务操作(而不是onlyIf块)中以某种方式停止任务,并在所有以前的任务都可以

我有三个梯度任务:A、B和B2。它们以以下方式相互依赖:StopExecutionException只是完成任务执行的快捷方式。如果按照您可以读入的方式抛出该任务,则该任务不会失败,也不会跳过该任务。您可以抛出
GradleException
使任务失败,然后后续任务将能够检查结果。请注意,您需要更改B2以使其成为B的最终任务(请参阅),或者使用
runAfter
或类似的操作。

旨在停止任务B的例外。我想知道的是,我是否可以在任务操作(而不是onlyIf块)中以某种方式停止任务,并在所有以前的任务都可以成功完成时签入后续任务。你对此有什么想法吗?提前谢谢。
task A {
    println "Exec A"
}

task B(dependsOn: A) << {
    throw new StopExecutionException("skip this task") // this exception prevents the println, but doesn't change the TaskStatus of B
    println "Exec B"
}

task B2(dependsOn: B) << {
    println "Did work: " + B.getState().getDidWork();
    println "Exec: " + B.getState().getExecuted();
    println "Failure: " + B.getState().getFailure();
    println "Skip message: " + B.getState().getSkipMessage();
    println "Skipped: " + B.getState().getSkipped();

    println "Exec B2"
}
> gralde -q B2
Exec A
Did work: true
Exec: true
Failure: null
Skip message: null
Skipped: false
Exec B2