调用mvn tomcat:使用批处理文件在多个项目/不同目录中运行

我是批处理文件的新手。我有两个项目,我想使用批处理文件运行它们。projectA应该在端口8081上运行,而projectB应该在8082上运行。我尝试了以下两种方法,但是只有projectA在端口8081上启动。

@echo off

SET CMB_HOME=C:\Development\CMB

cd %CMB_HOME%\projectA\

call mvn tomcat:run -Dmaven.tomcat.port=8081

cd %CMB_HOME%\projectB\

call mvn tomcat:run -Dmaven.tomcat.port=8082

似乎没有阅读以下部分。

cd %CMB_HOME%\projectB\

call mvn tomcat:run -Dmaven.tomcat.port=8082

我也尝试创建2个批处理文件:master.bat和slave.bat。

master.bat包含以下内容,并正在调用slave.bat:

@echo off

SET CMB_HOME=C:\Development\CMB

cd %CMB_HOME%\projectA\

call mvn tomcat:run -Dmaven.tomcat.port=8081

SET SCRIPT_HOME=C:\Development\scripts\CMB

cd %SCRIPT_HOME%

call slave.bat

slave.bat包含以下内容:

@echo off

SET CMB_HOME=C:\Development\CMB

cd %CMB_HOME%\projectB\

call mvn tomcat:run -Dmaven.tomcat.port=8082

请帮忙。

回答:

编辑:更新了传递的参数。

@echo off

SET CMB_HOME=C:\Development\CMB

pushd %CMB_HOME%\projectA\

start "Port 8081" cmd /c "mvn tomcat:run -Dmaven.tomcat.port=8081"

popd

pushd %CMB_HOME%\projectB\

start "Port 8082" cmd /c "mvn tomcat:run -Dmaven.tomcat.port=8082"

popd

因为我不知道mvn如何期望其参数,所以您可能会在start命令中使用引号

start "Port 8081" cmd/c ^""mvn "tomcat:run -Dmaven.tomcat.port=8081" ^"

...

start "Port 8082" cmd/c ^""mvn "tomcat:run -Dmaven.tomcat.port=8082" ^"

或尝试解决方法…

@echo off

if "%~1" neq "" goto run

start "Port 8081" cmd /c ^""%~f0" projectA 8081 ^"

start "Port 8082" cmd /c ^""%~f0" projectB 8082 ^"

goto :eof

:run

set "PORT=%~2"

set "CMB_HOME=C:\Development\CMB\%~1\"

pushd %CMB_HOME%

call mvn tomcat:run -Dmaven.tomcat.port=%PORT%

popd

goto :eof

以上是 调用mvn tomcat:使用批处理文件在多个项目/不同目录中运行 的全部内容, 来源链接: utcz.com/qa/401959.html

回到顶部