Respostas:
Usar
call mvn clean
call mvn package
Observe que você não precisa de ponto e vírgula em arquivos em lote. E a razão pela qual você precisa usar call
é que mvn
ele mesmo é um arquivo em lote e os arquivos em lote precisam chamar uns aos outros call
, caso contrário, o controle não retorna para o chamador.
Se você quiser que os comandos subsequentes ecoem na linha de comando (mostrar na saída do lote), você também deve fazer echo on
depois de call mvn
terminar (na próxima linha). Isso ocorre porque mvn
desativa o eco e não o ativa novamente.
A resposta de Joey é ótima, mas talvez um exemplo de código mais completo ajude alguém como eu, que também está descobrindo um problema semelhante de construção de vários projetos Maven a partir de um arquivo em lote no Windows:
REM maven itself uses a batch file so each mvn must be preceded by "call"
REM the -f flag specifies where the pom.xml is found for the project
REM mvn install will save the target output to %userprofile%\.m2\repository ...
call mvn install -f c:\Users\John\workspace\PropertiesReader\pom.xml
call mvn install -f c:\Users\John\workspace\PropertiesWriter\pom.xml
Você também pode ter o seguinte one-liner:
call mvn clean package
call
para que tudo o que escreverem após o mvn
comando seja executado.
Tenho mais projetos para rodar, criei esse morcego:
@echo off
SET DEVELOPMENT_HOME=C:\Projects
cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install
cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install
O comportamento observado é da época do MS-DOS 1.0 e é mantido por questões de compatibilidade, como soluções você deve utilizar a função de chamada do Windows da seguinte forma:
call mvn clean
call mvn package
A "chamada" executa um programa em lote a partir de outro e o interpreta como uma sub-rotina.
podemos usar o seguinte para construir um maven e passá-lo para qualquer pasta unix para fins de desenvolvimento
SET projectName=commonutil
cd %gitpath%\%projectName%
call mvn clean install -DskipTests=true %password%
IF %ERRORLEVEL% EQU 0 (Echo No error found) ELSE goto exitdoor
SET jarpath="%gitpath%\%projectName%\target\%projectName%-0.0.1-SNAPSHOT.jar"
copy /Y %jarpath% "%libpath%"
scpg3 %jarpath% %ssh_profile_name%@%hostname%:%dev_lib_folder_name%
Usar
ligar mvn clean package
sample
------
echo %test%
cd %test%\ManaulActionAddNotes-test
call mvn clean
cd %test%\restAuthentication-test
call mvn clean
gradle