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 une commande Shell (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.
Maven utilise des fichiers de commandes pour faire ses affaires. Avec tout script batch, vous devez appeler un autre script à l'aide de la commande call
afin qu'il sache revenir à votre script une fois le script appelé terminé. Essayez de ajouter call
à toutes les commandes.
Vous pouvez également essayer d’utiliser la commande start
qui devrait fonctionner de la même manière.
Avoir call
aide. Cependant aujourd'hui, ce n'est pas le cas.
Voici comment je l'ai résolu:
contenu du fichier Bat (si vous voulez arrêter lot quand une des erreurs cmds)
cmd1 && ^
cmd2 && ^
cmd3 && ^
cmd4
contenu du fichier Bat (si vous voulez continuer batch quand une des erreurs cmds)
cmd1 & ^
cmd2 & ^
cmd3 & ^
cmd4
Pour exécuter plusieurs versions de Maven à partir d'un script, vous devez utiliser la fonction Windows appel de la manière suivante:
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
Il est normal que la commande mvn
particulière exec
s ne soit pas renvoyée, ce qui n'exécute pas le reste des commandes.
Essayez d’écrire le fichier de commandes suivant et de l’exécuter:
Echo one
cmd
Echo two
cmd
Echo three
cmd
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 vous assurer que ce n'est pas ce qui se passe dans votre script, tapez simplement "exit" à la fin de la première commande.
HTH!