作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有三个 gradle 任务:A、B 和 B2。它们以下列方式相互依赖:A <- B <- B2(意思是 B 依赖于 A,B2 依赖于 B)。这是我的代码:
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
),我得到以下输出:
> gralde -q B2
Exec A
Did work: true
Exec: true
Failure: null
Skip message: null
Skipped: false
Exec B2
可以看出,尽管 StopExecutionException 被正确抛出,但 TaskState 的属性没有改变。我如何确定任务中所有以前的任务是否已完全执行?
最佳答案
StopExecutionException
只是完成任务执行的快捷方式。如果抛出任务,任务不会失败,您可以在 documentation 中读到任务也没有被跳过。您可以抛出 GradleException
使任务失败,然后后续任务将能够检查结果。请注意,您需要更改 B2 以使其成为 B 的最终任务(请参阅 here )或使用 runAfter
或类似的东西。
关于Gradle - StopExecutionException 不会改变 TaskStatus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26178327/
我有三个 gradle 任务:A、B 和 B2。它们以下列方式相互依赖:A gralde -q B2 Exec A Did work: true Exec: true Failure: null S
我正在尝试在我的Android gradle文件中添加“thow StopExecutionException”: apply plugin: 'com.android.library' task e
我是一名优秀的程序员,十分优秀!