J'ai un fichier batch qui exécute trois commandes Maven, l'une après l'autre. Chaque commande peut être exécutée avec succès dans le script - par elle-même !. Mais lorsque j'ajoute les trois commandes au même fichier, seule la première s'exécute avant la fin du script. Une idée pourquoi?
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
De plus, si je copie les trois commandes et les colle dans un shell de commande (cmd.exe), elles s'exécutent l'une après l'autre sans problème. C'est donc apparemment un problème avec le fichier de commandes dos.
Réponses:
Maven utilise des fichiers batch pour faire ses affaires. Avec n'importe quel script batch, vous devez appeler un autre script à l'aide de la
call
commande afin qu'il sache revenir à votre script une fois le script appelé terminé. Essayez de faire précédercall
toutes les commandes.Une autre chose que vous pouvez essayer est d'utiliser la
start
commande qui devrait fonctionner de la même manière.la source
ant
intérieur des fichiers batch Windows avant et lecall
était nécessaire pour pouvoirant
s'exécuter. Sanscall
le lot s'arrêtera après la première commande, donc les deux secondes ne s'exécutent pas. microsoft.com/resources/documentation/windows/xp/all/proddocs/… pour plus d'informations surcall
start
provoquera l'apparition d'une nouvelle fenêtre et chacune des trois commandes s'exécutera en parallèle. Si vous en avez besoin pour s'exécuter de manière synchrone, utilisezcall
.call pause
à la fin (sans guillemets) si vous voulez garder les fenêtres cmd ouvertesAvoir des
call
aides. Mais aujourd'hui, non.Voici comment je l'ai résolu:
Contenu du fichier Bat (si vous souhaitez arrêter le lot lorsque l'une des erreurs cmds)
Contenu du fichier Bat (si vous souhaitez continuer le lot lorsque l'une des erreurs cmds)
la source
cmd1 && cmd2 && cmd3 && cmd4
créer essentiellement toutes les commandes sur une seule ligne.)call
solution ne s'arrêtait pas aux erreurs, celle-ci le fait.Pour exécuter plus de builds Maven à partir d'un script, vous devez utiliser la fonction d' appel Windows de la manière suivante:
la source
Il devrait être que la
mvn
commande particulièreexec
s et ne retourne pas, n'exécutant ainsi pas le reste des commandes.la source
mvn
commande suivante ?Essayez d'écrire le fichier de commandes suivant et de l'exécuter:
Seules les deux premières lignes sont exécutées. Mais si vous tapez "exit" à l'invite de commande, les deux lignes suivantes sont traitées. C'est un shell qui en charge un autre.
Pour être sûr que ce n'est pas ce qui se passe dans votre script, tapez simplement "exit" lorsque la première commande se termine.
HTH!
la source
call
. Ce n'est pas un shell imbriqué qui n'est pas terminé.