2012-11-14 19 views
12

Wykonuję zadanie wdrożenia Mave z skryptu Bash, ale nawet jeśli zadanie Maven nie powiedzie się, skrypt będzie kontynuowany i ukończony bez błędów.Wykonywanie zadania Maven ze skryptu powłoki i uzyskiwanie kodów błędów

Próbowałem flagi -e, ale to powoduje awarię wdrożenia. Próbowałem również następujące (pseudo kod)

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

Wszelkie sugestie, w jaki sposób mogę stwierdzić, czy wdrożenie zostało pomyślnie wykonane?

Odpowiedz

26

result_code=mvn deploy nie jest sposobem na uzyskanie statusu powrotną

można spróbować np :

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

Ponadto jeśli ktoś w systemie Windows 10, tutaj jest przykład, który używam:

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

echo SUCCESS 
goto end 

:error 
echo FAILED 

:end 
0

tylko jedna z możliwych przyczyn osoby mvn zadanie może powrócić 0 mimo braku: uważać o wyprowadzaniu wyjścia z maven do innych programów. Na przykład używam grcat (na którym jest zbudowana grc), która zawsze będzie zwracać kod wyjścia 0;

\mvn compile | grcat ~/conf.mvn 

Nie jestem pewien, jak zachować moje ładne kolorowe kodowanie wyjścia. Jest tam color_maven.sh, ale ma to inne problemy.

Powiązane problemy