3

我有以下 bat 脚本:

@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..." 成功完成,compiled_tar.jar 被创建,输出为:

[INFO] BUILD SUCCESS

如果我在最后一行和上一行之间插入 PAUSE 命令,则 PAUSE 也从未发生过。为什么?

4

2 回答 2

12

mvn它本身就是一个.bat文件,因此(为了与 MS-DOS 1.0 兼容)Windows 将停止执行您的批处理文件。要解决此问题,请使用以下call命令:

call mvn validate compile package db-migration:migrate -DskipTests
于 2012-07-03T23:17:42.593 回答
0

使用这个 Maven 命令 (set 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
于 2013-01-16T07:41:29.330 回答