当在bat 文件中执行maven命令时,有时候需要知道maven命令执行是否成功或者失败,从而可以根据批处理的 if 判断语句决定是否执行以下的 bat 的内容,判断maven命令执行成功与否的参数是:%ERRORLEVEL%,当maven执行成功时,%ERRORLEVEL%返回0,失败则返回1,例如下面的bat文件:(注意if 语句后面的括号要有空格,即:下面的 0 和 ‘(’ 之间要有空格,否则不能执行 if 语句而直接跳出)
cd XXXX(your project road)
call mvn clean install -Ddeploy-db -Dapps=main -e
echo error_claimpl:%ERRORLEVEL%
rem when maven execute sucess return 0
if %ERRORLEVEL%==0 (
your next operation....
call mvn clean install XXXX
)
或者下面的可以控制等待一定的时间再往下执行的CHOISE
echo build XXXX...................................
cd your maven project road(the road that contains pom file)
rem build your project:
call mvn clean install -Ddeploy-db -Dapps=main -e -Dmaven.test.skip=true
if %ERRORLEVEL%==0 (
do something.....
)else cmd
if %ERRORLEVEL%==0 (
echo start tomcat......................................
cd /d D:\ProgramFiles\apache-tomcat-8.5.40\logs
rmdir /s/q D:\ProgramFiles\apache-tomcat-8.5.40\logs
cd /d D:\ProgramFiles\apache-tomcat-8.5.40\bin
call startup.bat
)else cmd
rem wait 600s for tomcat start, then execute next command, notice that CHOISE can not rem execute in if statement, otherwise error will appear
if not defined WAITING_TOMCAT_STARTUP_TIME set WAITING_TOMCAT_STARTUP_TIME=600
CHOICE /N /T %WAITING_TOMCAT_STARTUP_TIME% /D Y /M "Wait %WAITING_TOMCAT_STARTUP_TIME% seconds for tomcat startup"
echo deploy products.................................
cmd