2010-06-21 23 views
1

有人可以告诉我为什么执行.bat脚本后只执行第一个mvn deploy命令,然后执行关闭。为什么所有的命令都没有执行?在.bat脚本中运行所有命令

set GROUP_BASE=com.oracle.jdeveloper.jars 
set VERSION=10.1.3.3.0.4157 
set JDEV_HOME=C:/Oracle/jdevstudio10133 
set REPO_URL=http://localhost:8081/nexus/content/repositories/thirdparty 
set REPOSITORY_ID=thirdparty 
mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.BC4J_lib -DartifactId=bc4jct -Dversion=%VERSION% -Dfile=%JDEV_HOME%/BC4J/lib/bc4jct.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.BC4J_lib -DartifactId=adfm -Dversion=%VERSION% -Dfile=%JDEV_HOME%/BC4J/lib/adfm.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.BC4J_jlib -DartifactId=bc4jui -Dversion=%VERSION% -Dfile=%JDEV_HOME%/BC4J/jlib/bc4jui.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.jlib -DartifactId=osdt_core -Dversion=%VERSION% -Dfile=%JDEV_HOME%/jlib/osdt_core.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.ord_jlib -DartifactId=ordim -Dversion=%VERSION% -Dfile=%JDEV_HOME%/ord/jlib/ordim.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.xdoclet-1_2_1 -DartifactId=xdoclet-ibm-module-1.2.1 -Dversion=%VERSION% -Dfile=%JDEV_HOME%/xdoclet-1.2.1/xdoclet-ibm-module-1.2.1.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.jlib -DartifactId=jssl-1_1 -Dversion=%VERSION% -Dfile=%JDEV_HOME%/jlib/jssl-1_1.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.jlib -DartifactId=javax-ssl-1_1 -Dversion=%VERSION% -Dfile=%JDEV_HOME%/jlib/javax-ssl-1_1.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
+0

[从Windows CMD脚本执行多个命令]可能重复(http://stackoverflow.com/questions/197976/executing-multiple-命令从一个窗口cmd脚本) – Helen 2010-08-26 18:59:51

回答

2

尝试使用CALL命令。

... 
call mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.BC4J_lib -DartifactId=bc4jct -Dversion=%VERSION% -Dfile=%JDEV_HOME%/BC4J/lib/bc4jct.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
call mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.BC4J_lib -DartifactId=adfm -Dversion=%VERSION% -Dfile=%JDEV_HOME%/BC4J/lib/adfm.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
... 

如果你不使用CALL调用命令,控制传递到新的程序,并没有返回(在你的例子,这是第一次mvn ...后会发生什么)。 CALL将控制权返回给调用者,并继续执行下一条指令。

+1

如果我没有弄错,同样的'开始'“'命令在这里'。 – Bobby 2010-06-21 14:09:57

+0

@Bobby:“开始”打开一个新的CMD窗口,我不认为你需要每个命令的窗口(特别是如果你有很多的话:D)。我也认为“开始”并不等待这个过程终止,但我可能是错误的。 – 2010-06-21 14:22:40

+0

@dpb:我从未注意到那个人会打开一个新的cmd。 :/另外,我认为有人问,它运行'异步'... – Bobby 2010-06-21 14:43:33

1

试试这个你正在运行MVN每一行:

START /WAIT "" mvn deploy:deploy-file -DgroupId=%GROUP_BASE%.BC4J_lib -DartifactId=bc4jct -Dversion=%VERSION% -Dfile=%JDEV_HOME%/BC4J/lib/bc4jct.jar -Dpackaging=jar -DrepositoryId=%REPOSITORY_ID% -Durl=%REPO_URL% 
+0

虽然,你可以在单个窗口中输出所有的输出。你可能也想添加'/ B'。 – Joey 2010-06-21 18:23:39