我以非常默认的方式设置了一个exec任务,如下所示:

task myTask(type:Exec) {

    workingDir '.'

    commandLine './myscript.sh'

    doLast {
        if(execResult == 0) {
           //one thing
        } else {
           //another thing
        }
    }
}

但是不幸的是,当脚本抛出错误时,它从不执行doLast块。相反,它将跳过该操作,并导致整个构建失败



对我来说那没用。使用非零退出值完成myscript.sh的整个想法是,这样我就可以执行一些代码以对其进行响应。我需要做些什么来使构建失败而不是捕获结果并执行响应操作?谢谢您的帮助!

最佳答案

TL; DR-使用ignoreExitValue = true

当我阅读文档大约50倍时,我终于看到有一个属性ignoreExitValue,默认为false。但是,如果将其设置为true,则可以在doLast块中执行自己的任务。

task myTask(type:Exec) {

    workingDir '.'

    commandLine './myscript.sh'

    ignoreExitValue true

    doLast {
        if(execResult.getExitValue() == 0) {
           //one thing
        } else {
           //another thing
        }
    }
}

10-07 18:57
查看更多