我想知道是否有一种方法可以从Shell脚本(用于构建过程)中"查询"Maven执行的状态.
关键是我希望在一个Shell脚本Maven执行中出现单个错误后,整个构建脚本就会失败.
例如
(0) mvn -f .../someDir clean
(1) mvn -f .../1/pom.xml install
(2) mvn -f .../2/pom.xml -PgenerateWadl
Run Code Online (Sandbox Code Playgroud)
因此,如果例如在(0)内发生错误,那么(1)和(2)必须不再执行,而是构建脚本应该在(0)之后直接退出并显示错误消息.
我对Shell脚本的了解不多,但我知道$?变量以获取先前执行的返回值.但是,由于Maven似乎只是将错误写入控制台,这可能不起作用,是吗?
我本来希望研究有关"$?"的更多信息,但谷歌很难获得它.
一种简单的方法是使用该-e选项.
set -e
mvn -f .../somedir clean
mvn -f .../otherdir install
mvn -f .../thirddir -PgenerateWadl package
Run Code Online (Sandbox Code Playgroud)
如果在序列中的任何命令与非零状态退出(除非它是一个明确的测试的一部分,例如作为这将自动与错误壳出口if或while或链等a || b).
你可以通过false在任何Maven调用之间插入一个调用来观察这种情况.
有关详细信息,请参阅setPOSIX规范set -e.