Bash 从shell脚本执行Maven任务并获取错误代码
我正在从bash脚本执行Maven部署任务,但是即使Maven任务失败,脚本也会继续并完成,不会出现错误 我尝试了-e标志,但这会导致部署失败。我还尝试了以下(伪代码)Bash 从shell脚本执行Maven任务并获取错误代码,bash,shell,maven,Bash,Shell,Maven,我正在从bash脚本执行Maven部署任务,但是即使Maven任务失败,脚本也会继续并完成,不会出现错误 我尝试了-e标志,但这会导致部署失败。我还尝试了以下(伪代码) 关于如何识别部署是否成功,有什么建议吗?result\u code=mvn deploy不是获取返回状态的方法 你可以试试,例如: #!/bin/bash mvn deploy STATUS=$? if [ $STATUS -eq 0 ]; then echo "Deployment Successful" else echo
关于如何识别部署是否成功,有什么建议吗?
result\u code=mvn deploy
不是获取返回状态的方法
你可以试试,例如:
#!/bin/bash
mvn deploy
STATUS=$?
if [ $STATUS -eq 0 ]; then
echo "Deployment Successful"
else
echo "Deployment Failed"
fi
此外,如果有人使用Windows 10,下面是我使用的示例:
mvn deploy
if not %ERROR_CODE%==0 goto error
echo SUCCESS
goto end
:error
echo FAILED
:end
尽管失败了,一个人的mvn任务仍可能返回0的另一个可能原因是:小心将maven的输出传输到其他程序。例如,我使用的是
grcat
(它grc
构建在上面),它将始终返回退出代码0
\mvn compile | grcat ~/conf.mvn
我不知道如何保留输出的漂亮颜色编码。那里有color_maven.sh,但还有其他问题。如果在bash中运行mvn,可以使用bash提供的PIPESTATUS数组变量访问管道中每个命令的退出状态:
${PIPESTATUS[0]}
将给出mvn compile
命令的退出代码和${PIPESTATUS[1]}
将给出grcat~/conf.mvn
命令的退出代码。
\mvn compile | grcat ~/conf.mvn