¿Por qué solo se ejecuta la primera línea de este archivo por lotes de Windows, pero las tres líneas se ejecutan en un shell de comandos?
Tengo un archivo por lotes que ejecuta tres comandos Maven, uno tras otro. Cada comando se puede ejecutar con éxito en el script - por sí mismo!. Pero cuando añado los tres comandos al mismo archivo, solo el primero se ejecuta antes de que salga el script. ¿Alguna idea de por qué?
mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar -Dpackaging=jar -DgeneratePom=true
También, si copio los tres comandos y los pego en un shell de comandos (cmd.exe), ejecutan uno tras otro sin ningún problema. Así que esto es aparentemente algún problema con el archivo por lotes dos.
5 answers
Maven usa archivos por lotes para hacer su negocio. Con cualquier script por lotes, debe llamar a otro script utilizando el call
comando para que sepa volver a su script después de que se complete el script llamado. Intente anteponer call
a todos los comandos.
Otra cosa que podría intentar es usar el start
comando que debería funcionar de manera similar.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-16 16:13:48
Tener call
ayuda
Sin embargo hoy no es
Así es como resolví:
Contenido del archivo Bat (si desea detener lote cuando uno de los errores cmds)
cmd1 && ^
cmd2 && ^
cmd3 && ^
cmd4
Contenido del archivo Bat (si desea continuar lote cuando uno de los errores cmds)
cmd1 & ^
cmd2 & ^
cmd3 & ^
cmd4
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-14 03:09:08
Para ejecutar más compilaciones de maven desde un script debes usar la función windows call de la siguiente manera:
call mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar -Dpackaging=jar -DgeneratePom=true
call mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar -Dpackaging=jar -DgeneratePom=true
call mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar -Dpackaging=jar -DgeneratePom=true
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-28 13:48:54
Debe ser que el comando mvn
en particular exec
s y no regresa, por lo tanto no ejecuta el resto de los comandos.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-10-27 19:12:45
Intente escribir el siguiente archivo por lotes y ejecutarlo:
Echo one
cmd
Echo two
cmd
Echo three
cmd
Solo se ejecutan las dos primeras líneas. Pero si escribe "exit" en el símbolo del sistema, se procesan las dos líneas siguientes. Es un proyectil cargando otro.
Para estar seguro de que esto no es lo que está sucediendo en su script, simplemente escriba "exit" cuando finalice el primer comando.
HTH!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-10-27 19:23:24