Ich habe eine Batch-Datei, die drei Maven-Befehle nacheinander ausführt. Jeder Befehl kann erfolgreich im Skript ausgeführt werden - für sich!. Wenn ich jedoch alle drei Befehle zur gleichen Datei hinzufüge, wird nur der erste ausgeführt, bevor das Skript beendet wird. Irgendeine Idee warum?
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
Wenn ich alle drei Befehle kopiere und in eine Befehlsshell (cmd.exe) einfüge, werden sie problemlos nacheinander ausgeführt. Dies ist also anscheinend ein Problem mit der Dos-Batch-Datei.
windows
batch-file
cmd
windows-7
Wiki
quelle
quelle
Antworten:
Maven verwendet Batch-Dateien, um seine Geschäfte zu erledigen. Bei jedem Batch-Skript müssen Sie mit dem
call
Befehl ein anderes Skript aufrufen, damit es nach Abschluss des aufgerufenen Skripts zu Ihrem Skript zurückkehren kann. Versuchen Siecall
, allen Befehlen ein Präfix voranzustellen .Sie können auch versuchen, den
start
Befehl zu verwenden, der ähnlich funktionieren sollte.quelle
ant
Windows-Batch-Dateien eingefügt und dascall
war erforderlich, umant
ausgeführt zu werden. Ohnecall
den Stapel wird nach dem ersten Befehl gestoppt, daher werden die zweiten beiden nicht ausgeführt. microsoft.com/resources/documentation/windows/xp/all/proddocs/… für weitere Informationen übercall
start
wird ein neues Fenster erzeugen und jeder der drei Befehle wird parallel ausgeführt. Wenn Sie sie synchron ausführen möchten, verwenden Siecall
.call pause
am Ende (ohne Anführungszeichen) , wenn Sie die cmd Fenster offen halten wollenMit
call
hilft. Heute jedoch nicht.So habe ich es gelöst:
Bat-Dateiinhalt (wenn Sie den Batch stoppen möchten, wenn einer der cmds-Fehler auftritt)
Bat-Dateiinhalt (wenn Sie den Batch fortsetzen möchten, wenn einer der cmds-Fehler auftritt)
quelle
cmd1 && cmd2 && cmd3 && cmd4
Wesentlichen, alle Befehle in einer Zeile zu machen.)call
Lösung hörte nicht bei Fehlern auf, das tut sie.Um mehr Maven-Builds von einem Skript aus auszuführen, müssen Sie die Windows- Aufruffunktion folgendermaßen verwenden:
quelle
Es sollte sein, dass der bestimmte
mvn
Befehlexec
s und nicht zurückkehrt, wodurch der Rest der Befehle nicht ausgeführt wird.quelle
mvn
Befehl auszuführen ?Versuchen Sie, die folgende Batch-Datei zu schreiben und auszuführen:
Nur die ersten beiden Zeilen werden ausgeführt. Wenn Sie jedoch an der Eingabeaufforderung "exit" eingeben, werden die nächsten beiden Zeilen verarbeitet. Es ist eine Shell, die eine andere lädt.
Um sicherzugehen, dass dies in Ihrem Skript nicht der Fall ist, geben Sie einfach "exit" ein, wenn der erste Befehl endet.
HTH!
quelle
call
. Es ist keine verschachtelte Shell, die nicht beendet wird.