批处理脚本执行顺序问题求助:Maven构建后执行复制操作
解决批处理中Maven构建完成后再执行复制的问题
问题出在你使用的START命令上——默认情况下,START会启动一个独立的新命令窗口来运行Maven构建,而原批处理脚本不会等待这个新窗口的任务完成,会直接继续执行后面的xcopy命令,这就导致复制操作在War包生成前就提前执行了。
这里有两种简单可行的解决方法:
方法1:去掉START,让Maven在当前窗口执行
直接移除START关键字,这样批处理会阻塞直到Maven构建完全结束,再继续执行后续命令:
Cd /d "D:\Test" mvn clean install -DskipTests xcopy /s "D:\Test\brsint-web\brsint-webapp\target\Test.war" "D:\apache-tomcat-7.0_1.2Latest (2)\webapps" /Y Cd /d "D:\apache-tomcat-7.0_1.2Latest (2)\bin" START startup.bat
方法2:保留独立窗口,但强制等待构建完成
如果你希望Maven在单独的窗口运行,同时让批处理等待它结束,可以给START加上/WAIT参数,强制脚本等待新窗口的任务完成后再继续:
Cd /d "D:\Test" START /WAIT mvn clean install -DskipTests xcopy /s "D:\Test\brsint-web\brsint-webapp\target\Test.war" "D:\apache-tomcat-7.0_1.2Latest (2)\webapps" /Y Cd /d "D:\apache-tomcat-7.0_1.2Latest (2)\bin" START startup.bat
额外提示
如果你的系统环境变量里没有配置Maven的路径,记得把mvn换成Maven可执行文件的完整路径,比如"C:\apache-maven-3.9.0\bin\mvn.cmd",避免出现找不到命令的错误。
内容的提问来源于stack exchange,提问作者Sagar Pati
相关产品推荐
相关产品推荐

