Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从shell脚本执行Maven任务并获取错误代码_Bash_Shell_Maven - Fatal编程技术网

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

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

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

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


关于如何识别部署是否成功,有什么建议吗?

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