3

次のバットスクリプトがあります。

@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 に答える