Bat脚本意外退出

时间:2012-07-03 23:12:27

标签: maven batch-file

我有以下蝙蝠脚本:

@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也从未发生过。为什么呢?

2 个答案:

答案 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