Pregunta ¿Cómo ejecutar más de un comando maven en el archivo bat?


Hice un archivo bat como:

mvn limpio;
paquete mvn;

pero no funciona, solo se ejecuta el primer comando.

¿alguien me puede ayudar?


73
2017-07-04 14:53


origen


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 necesitas usar call es eso mvn en sí mismo es un archivo por lotes y los archivos por lotes necesitan llamarse entre sí con call, de lo contrario, el control no regresa a la persona que llama.

Si quiere que los comandos subsiguientes hagan eco en la línea de comando (mostrar en salida por lotes), también debe hacer echo on después de la call mvn está hecho (en la próxima línea). Esto es porque mvn apaga el eco y no lo vuelve a encender.


178
2017-07-05 07:37



La respuesta de Joey es genial, pero tal vez un ejemplo de código más completo ayudará a cualquier otra persona como yo que también descubra un problema similar al construir múltiples proyectos maven desde 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

23
2017-11-29 16:59



También puede tener el siguiente one-liner:

call mvn clean package 

12
2017-07-04 15:00



Tengo más proyectos para ejecutar, creé este tipo de esto:

@echo off
SET DEVELOPMENT_HOME=C:\Projects

cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install

cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install

6
2017-11-17 09:52



Use 'invocar' cuando desee invocar otro archivo por lotes en el archivo principal, para que el control se devuelva al archivo por lotes principal y continúe su ejecución.

Por ejemplo, mvn clean install


6
2018-06-27 09:39



El comportamiento observado viene desde el momento de MS-DOS 1.0 y se mantiene por razones de compatibilidad, ya que las soluciones que debe usar Windows llamada funcionar 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.


2
2017-08-26 07:58