2012-11-14 18 views
12

Sto eseguendo un'attività di distribuzione di Maven da uno script di bash tuttavia, anche se l'attività di Maven fallisce, lo script continuerà e si completerà senza errori.Esecuzione dell'attività Maven dallo script di shell e acquisizione dei codici di errore

Ho provato il flag -e ma questo causa il fallimento dell'installazione. Ho anche provato il seguente (pseudo codice)

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

Qualsiasi suggerimento Come posso identificare se l'implementazione ha avuto successo?

risposta

26

result_code=mvn deploy non è il modo per ottenere lo status di ritorno

si può provare per esempio :

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

Inoltre se qualcuno utilizza Windows 10, qui è l'esempio che io uso:

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

echo SUCCESS 
goto end 

:error 
echo FAILED 

:end 
0

Solo un'altra possibile ragione compito mvn di una persona può restituire 0 nonostante non riuscendo: fare attenzione circa piping l'output di Maven ad altri programmi. Ad esempio, sto usando grcat (che è grc compilato sopra), che restituirà sempre il codice di uscita 0;

\mvn compile | grcat ~/conf.mvn 

Non sono sicuro di come mantenere la mia bella codifica a colori dell'output. C'è color_maven.sh là fuori ma questo ha altri problemi.

Problemi correlati