如果发生异常,gradle避免依赖任务不运行



我有两个任务。任务A和任务B。我希望任务B每次执行任务A时运行。为了做到这一点,我使用最终确定,但是如果任务抛出一个例外仍然是任务b执行是否有办法避免这种情况。

任务a { ...}

任务b { ...}

a.finalized b

输出:

通常将执行任务A和B。

如果A中有例外,则B也将执行。如果任务A投掷异常。

,我不希望执行任务B。

根据官方文档:

最终任务即使最终任务失败也将执行。

但是,如果A任务失败,则可以使用doFirst闭合来停止B-任命执行。这是一个示例:

task A {
    doLast{
        println 'A'
        throw new IllegalStateException()
    }
}
task B {
    doFirst {
        if (A.state.failure != null) {
            throw new StopExecutionException()
        }
    }
    doLast{
        println 'B'
    }
}
A.finalizedBy B

这是在b-task执行之前(在doFirst内)之前检查的A任务状态,如果A任务失败,则它将抛出用于跳过任务执行的StopeXecutionExceptionm。

最新更新