hice un archivo bat como:¿Cómo ejecutar más de un comando maven en el archivo bat?
mvn clean; mvn package;
pero no funciona, sólo se ejecuta el primer comando.
alguien me puede ayudar?
hice un archivo bat como:¿Cómo ejecutar más de un comando maven en el archivo bat?
mvn clean; mvn package;
pero no funciona, sólo se ejecuta el primer comando.
alguien me puede ayudar?
Uso
call mvn clean
call mvn package
Tenga en cuenta que no es necesario un punto y coma en archivos por lotes. Y la razón por la que necesita usar call
es que mvn
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 desea 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 que se haya hecho call mvn
(en la siguiente línea). Esto se debe a que mvn
desactiva el eco y no lo vuelve a encender.
También puede tener la siguiente de una sola línea:
call mvn clean package
Aún así, deberían usar 'call' para que todo lo que escriban después de ejecutar el comando' mvn'. – Joey
tengo más proyectos a ejecutar, creé tales bate 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
respuesta de Joey es grande, pero tal vez un ejemplo de código más completo ayudará a cualquier otra persona como yo, que también está averiguar un problema similar de la construcción de varios proyectos de 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
uso 'llamada' cuando se quiere invocar a otro archivo por lotes en el archivo principal, por lo que el control será devuelto al archivo por lotes de los padres y continuará ejecución.
por ejemplo llamada mvn instalación limpia
El bahaviour observada proviene de la época de MS-DOS 1.0 y es mantener por razones de compatibilidad, como soluciones te servirán de Windows llamada función 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.
mismo con 'gradle' – Prabs