15

我正在从 bash 脚本执行 Maven 部署任务,但是即使 Maven 任务失败,脚本也会继续并完成而不会出现错误。

我已经尝试了 -e 标志,但这会导致部署失败。我还尝试了以下(伪代码)

result_code= mvn deploy
if [$result_code -gt 0];then
exit 1

有什么建议我可以确定部署是否成功?

4

3 回答 3

32

result_code=mvn deploy不是获得退货状态的方法

你可以试试例如:

#!/bin/bash
mvn deploy
STATUS=$?
if [ $STATUS -eq 0 ]; then
echo "Deployment Successful"
else
echo "Deployment Failed"
fi
于 2012-11-14T11:00:57.933 回答
0

此外,如果有人使用 Windows 10,这是我使用的示例:

mvn deploy
if not %ERROR_CODE%==0 goto error

echo SUCCESS
goto end

:error
echo FAILED

:end
于 2016-01-28T13:05:23.470 回答
0

尽管失败,但一个人的 mvn 任务可能返回 0 的另一个可能原因是:小心将 maven 的输出通过管道传输到其他程序。例如,我正在使用grcatgrc构建在其之上),它将始终返回退出代码 0;

\mvn compile | grcat ~/conf.mvn

我不确定如何保留输出的漂亮颜色编码。那里有 color_maven.sh 但还有其他问题。

于 2017-02-13T21:24:21.353 回答