我在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/

10-13 04:13