我有一个非常默认的exec任务设置,如:
task myTask(type:Exec) { workingDir '.' commandLine './myscript.sh' doLast { if(execResult == 0) { //one thing } else { //another thing } } }
但不幸的是,当脚本抛出错误时,它永远不会执行doLast块.相反,它会跳过它并使整个构建失败
任务':project:myTask'的执行失败.进程'命令'./myscript.sh''以非零退出值1完成"
那对我来说没用.使用非零退出值完成myscript.sh的整个想法是这样我可以执行一些代码来响应它.我需要做什么才能使构建失败但捕获结果并执行响应操作?谢谢您的帮助!
TL; DR - 使用ignoreExitValue = true
当我阅读大约第五十次的文档时,我终于看到有一个属性,ignoreExitValue,默认为false.但是如果将其设置为true,则可以在doLast块中执行自己的任务.
task myTask(type:Exec) { workingDir '.' commandLine './myscript.sh' ignoreExitValue true doLast { if(execResult.getExitValue() == 0) { //one thing } else { //another thing } } }