我有以下蝙蝠脚本:
@echo off
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_32
set JRE_HOME=C:\Program Files\Java\jdk1.6.0_32\jre
set Path=%JAVA_HOME%\bin;%Path%
cd C:\project
mvn validate compile package db-migration:migrate -DskipTests
REM script exits here, the second line never been executed
java -jar target/compiled_tar.jar
最后一行从未执行过。 “mvn ...”成功完成,created_tar.jar被创建,输出为:
[INFO] BUILD SUCCESS
如果我在最后一行和上一行之间插入PAUSE命令,PAUSE也从未发生过。为什么呢?
答案 0 :(得分:10)
mvn
本身就是一个.bat
文件,因此(为了与MS-DOS 1.0兼容)Windows将停止执行批处理文件。要解决此问题,请使用call
命令:
call mvn validate compile package db-migration:migrate -DskipTests
答案 1 :(得分:0)
使用这个Maven命令(设置maven_batch_pause = on)将完美地解决这个问题:
@echo off
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_32
set JRE_HOME=C:\Program Files\Java\jdk1.6.0_32\jre
set Path=%JAVA_HOME%\bin;%Path%
set maven_batch_pause=on
cd C:\project
mvn validate compile package db-migration:migrate -DskipTests
REM The script exits here, and the second line will never be executed
java -jar target/compiled_tar.jar