【问题标题】:Bat script exits unexpectedly蝙蝠脚本意外退出
【发布时间】:2012-07-04 10:47:41
【问题描述】:

我有以下 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 也永远不会发生。为什么?

【问题讨论】:

标签: maven batch-file


【解决方案1】:

使用这个 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

【讨论】:

    【解决方案2】:

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

    call mvn validate compile package db-migration:migrate -DskipTests
    

    【讨论】:

    • 你改变了我的生活。谢谢!
    • 这一年是 2013 年,我不得不关心 32 年前的 MS-DOS 1.0 是如何运行的。我不知道我该伤心还是感动。
    • @ChrisNielsen 2019 现在。
    猜你喜欢
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多