wik*_*iki 163 windows cmd batch-file windows-7
我有一个批处理文件,一个接一个地执行三个Maven命令.每个命令都可以在脚本中成功执行 - 本身!但是当我将所有三个命令添加到同一个文件时,只有第一个命令在脚本退出之前执行.知道为什么吗?
mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar -Dpackaging=jar -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)
此外,如果我复制所有三个命令并将它们粘贴到命令shell(cmd.exe)中,它们会一个接一个地执行,没有任何问题.所以这显然是dos批处理文件的一些问题.
Jef*_*ado 280
Maven使用批处理文件来开展业务.对于任何批处理脚本,您必须使用该call命令调用另一个脚本,以便在调用的脚本完成后它知道返回到您的脚本.尝试前置call所有命令.
您可以尝试的另一件事是使用start应该类似的命令.
Man*_*ddy 22
有call帮助.然而今天却没有.
这就是我解决它的方式:
Bat文件内容(如果要在cmds错误之一时停止批处理)
cmd1 && ^
cmd2 && ^
cmd3 && ^
cmd4
Run Code Online (Sandbox Code Playgroud)
Bat文件内容(如果要在cmds错误之一时继续批处理)
cmd1 & ^
cmd2 & ^
cmd3 & ^
cmd4
Run Code Online (Sandbox Code Playgroud)
要从一个脚本执行更多Maven构建,您应使用以下方式使用Windows 调用函数:
call mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar -Dpackaging=jar -DgeneratePom=true
call mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar -Dpackaging=jar -DgeneratePom=true
call mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar -Dpackaging=jar -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)