ariabele
ariabele

Reputation: 365

Call mvn tomcat:run in multiple projects/different directories using a batch file

I am new to batch files. I have two projects and I want to run them using a batch file. projectA should run on port 8081 and projectB on 8082. I have tried the following 2 approaches, but only projectA starts on port 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

Seems like the following part is not read.

cd %CMB_HOME%\projectB\
call mvn tomcat:run -Dmaven.tomcat.port=8082

I have also tried creating 2 batch files: master.bat and slave.bat.

master.bat contains the following and is calling 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

And slave.bat contains the following:

@echo off
SET CMB_HOME=C:\Development\CMB
cd %CMB_HOME%\projectB\
call mvn tomcat:run -Dmaven.tomcat.port=8082

Please help.

Upvotes: 0

Views: 97

Answers (1)

elzooilogico
elzooilogico

Reputation: 1705

EDIT: Updated passing arguments.

@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

as I don't know how mvn expect its arguments you may play with the quotes in the start command

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

Or try a workaround...

@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

Upvotes: 1

Related Questions