Получить состояние выполнения Maven в сценарии оболочки - PullRequest
3 голосов
/ 06 декабря 2010

Я хотел бы знать, есть ли способ «запросить» состояние выполнения Maven из сценария Shell (используется для процесса сборки).

Дело в том, что я хотел быпозволить всему сценарию сборки завершиться ошибкой, как только в одном из сценариев оболочки появится ошибка Maven.

например

(0) mvn -f .../someDir clean
(1) mvn -f .../1/pom.xml install
(2) mvn -f .../2/pom.xml -PgenerateWadl

Так что, например, если в (0) возникает ошибка, тогда (1) и (2) больше не должны выполняться, но вместо этого сценарий сборки должен завершиться с сообщением об ошибке сразу после (0).

Я не очень разбираюсь в сценариях Shell, но язнаете о $?переменная, чтобы получить возвращаемое значение более раннего выполнения.Но поскольку Maven, похоже, просто выводит ошибки на консоль, это может не сработать, не так ли?

Мне бы хотелось изучить дополнительную информацию о "$?", Но поискать ее в Google довольно сложно..

Ответы [ 2 ]

6 голосов
/ 06 декабря 2010

Простой способ - использовать параметр -e.

set -e
mvn -f .../somedir clean
mvn -f .../otherdir install
mvn -f .../thirddir -PgenerateWadl package

Это автоматически приведет к выходу оболочки с ошибкой, если любая команда в последовательности завершится с ненулевым статусом (если она не является частьюявного теста, такого как if или while или цепочка, подобная a || b).

Вы можете наблюдать это, вставляя вызов в false между любыми вызовами Maven.

Подробнее о set -e.

см. В спецификации set POSIX .
2 голосов
/ 06 декабря 2010
mvn ... && mvn ... && mvn ...

Выполнение будет продолжено, только если предыдущий был успешным.

...