我在build.gradle中有以下代码:
task generateReport(type: Exec){
onlyIf{
project.getState().failure
}
doLast{
executable "generateReport.bat"
}
}
tasks.withType(Test)*.finalizedBy generateReport
我之前尝试过:task generateReport(type: Exec){
executable "generateReport.bat"
}
tasks.withType(Test)*.finalizedBy generateReport
gradle.afterProject {project, projectState ->
if (projectState.failure) {
doLast{
generateReport
}
}
}
和其他示例,但都没有用。我做错了什么?
最佳答案
首先,您必须使用BuildListener
,正如其他答案中已经提到的那样。还有一点需要注意,您无法使用generateReport
像以前一样调用某些任务。因此,您宁愿在侦听器的关闭位置直接使用exec
,如下所示:
gradle.buildFinished { buildResult ->
if (buildResult.failure) {
exec {
executable "generateReport.bat"
}
}
}
关于gradle - 仅在构建失败后如何在Gradle中执行任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41042995/