Respuestas:
Utilizar
call mvn clean
call mvn package
Tenga en cuenta que no necesita punto y coma en los archivos por lotes. Y la razón por la que necesita usar call
es que en mvn
sí mismo es un archivo por lotes y los archivos por lotes deben llamarse entre sí call
; de lo contrario, el control no regresa a la persona que llama.
Si desea que los comandos subsiguientes se repitan en la línea de comandos (mostrar en la salida por lotes), también debe hacerlo echo on
después de que call mvn
haya terminado (en la siguiente línea). Esto se debe a que mvn
desactiva el eco y no lo vuelve a activar.
La respuesta de Joey es excelente, pero tal vez un ejemplo de código más completo ayude a cualquier otra persona como yo que también esté resolviendo un problema similar de construir múltiples proyectos maven a partir de un archivo por lotes en 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
También puede tener el siguiente one-liner:
call mvn clean package
call
para que mvn
se ejecute todo lo que escriban después del comando.
Tengo más proyectos para ejecutar, creé tal bat esto:
@echo off
SET DEVELOPMENT_HOME=C:\Projects
cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install
cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install
El comportamiento observado proviene de la época de MS-DOS 1.0 y se mantiene por razones de compatibilidad, como soluciones debe utilizar la función de llamada de Windows de la siguiente manera:
call mvn clean
call mvn package
La "llamada" ejecuta un programa por lotes de otro y lo interpreta como una subrutina.
podemos usar lo siguiente para construir un maven y pasarlo a cualquier carpeta de Unix para propósitos de desarrollo
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%
Utilizar
llamada mvn clean package
sample
------
echo %test%
cd %test%\ManaulActionAddNotes-test
call mvn clean
cd %test%\restAuthentication-test
call mvn clean
gradle