gpt4 book ai didi

java - Jenkins 在 Scala 失败时报告成功

转载 作者:行者123 更新时间:2023-11-30 05:55:30 26 4
gpt4 key购买 nike

我刚刚尝试使用 Jenkins 并建立了几个项目。一个特别的调用 shell 脚本,并且正确地提取该脚本的退出代码,产生通过/失败。然而,当我从命令行调用 Scala 时,无论发生什么,它都会通过。

在执行 shell 框中:

/opt/scala/2.9.1/bin/scala sdfsdfsd
Exception in thread "main" java.lang.RuntimeException:
Cannot figure out how to run target: sdfsdfsd
... (stack trace removed)
Finished: SUCCESS

然而,用 Java 做同样的事情会失败:

/opt/java/jdk1.7.0/bin/java sdfdfsd
Error: Could not find or load main class sdfdfsd
Finished: FAILURE

当从 bash 运行时(使用 echo $?),这两者都会产生 1 的退出代码

我是不是遗漏了什么或者这是一个错误?

编辑:

有趣的是,我在使用 ant exec 时看到了相同的行为 - 当我调用包含对 scala 的无效调用的 shell 脚本时,我得到了预期的错误代码,但是通过 ant(使用 failonerror='true')我看到了零和构建成功。

谢谢

最佳答案

这是一个已知错误 Scala eats exit code when piping stdin , 固定在后备箱中。

要修补您的系统,修复非常简单,在 $SCALA_HOME/bin/scala 脚本中,第 25 行

function onExit() {
if [[ "$saved_stty" != "" ]]; then
restoreSttySettings
exit $scala_exit_status
fi
}

将导出移到 if 之外:

function onExit() {
if [[ "$saved_stty" != "" ]]; then
restoreSttySettings
fi
exit $scala_exit_status
}

这将解决您的问题(实际上在 ant 中也是如此,但您必须为 scalac 做同样的事情)。

关于java - Jenkins 在 Scala 失败时报告成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8254362/

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