gpt4 book ai didi

Gradle exec 任务返回非零退出值并使构建失败但我不想失败而是执行另一个任务

转载 作者:行者123 更新时间:2023-12-03 09:20:03 26 4
gpt4 key购买 nike

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

task myTask(type:Exec) {

workingDir '.'

commandLine './myscript.sh'

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

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

Execution failed for task ':project:myTask'. Process 'command './myscript.sh'' finished with non-zero exit value 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
}
}
}

关于Gradle exec 任务返回非零退出值并使构建失败但我不想失败而是执行另一个任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34234820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com