我有一个批处理文件,一个接一个地执行三个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
此外,如果我复制所有三个命令并将它们粘贴到命令shell(cmd.exe)中,它们会一个接一个地执行,没有任何问题 . 所以这显然是dos批处理文件的一些问题 .
5 回答
有
call
有帮助 . 然而今天却没有 .这就是我解决它的方式:
Bat file contents (如果要在cmds错误之一时批量 stop )
Bat file contents (如果要在cmds错误之一时批量 continue )
它应该是特定的
mvn
命令exec
并且不返回,因此不执行其余的命令 .要从一个脚本执行更多Maven构建,您应使用以下方式使用Windows call 函数:
尝试编写以下批处理文件并执行它:
只有前两行被执行 . 但是,如果在命令提示符下键入“exit”,则会处理下两行 . 这是一个加载另一个的shell .
为了确保这不是您的脚本中发生的事情,只需在第一个命令结束时键入“exit” .
HTH!
Maven使用批处理文件来开展业务 . 对于任何批处理脚本,必须使用call命令调用另一个脚本,以便在调用的脚本完成后它知道返回到脚本 . 尝试将
call
添加到所有命令 .您可以尝试的另一件事是使用start命令,该命令应该类似 .