从shell脚本执行Maven任务并获取错误代码

时间:2012-11-14 10:54:06

标签: bash shell maven

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

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

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

有关如何识别部署是否成功的任何建议?

3 个答案:

答案 0 :(得分:29)

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

你可以试试,例如:

#!/bin/bash
mvn deploy
STATUS=$?
if [ $STATUS -eq 0 ]; then
echo "Deployment Successful"
else
echo "Deployment Failed"
fi

答案 1 :(得分:0)

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

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

echo SUCCESS
goto end

:error
echo FAILED

:end

答案 2 :(得分:0)

另一个可能的原因是,一个人的mvn任务可能会在失败的情况下返回0:小心将maven的输出传递给其他程序。例如,我正在使用grcatgrc构建在其上),它将始终返回退出代码0;

\mvn compile | grcat ~/conf.mvn

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