我以非常默认的方式设置了一个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
}
}
}