Antworten:
Verwenden
call mvn clean
call mvn package
Beachten Sie, dass Sie in Batchdateien keine Semikolons benötigen. Und der Grund , warum Sie verwenden müssen , call
ist , dass mvn
sich eine Batch - Datei und Batch - Dateien müssen mit einander rufen call
, sonst zurückkehrt Steuerung nicht an den Anrufer.
Wenn nachfolgende Befehle in der Befehlszeile wiedergegeben werden sollen (in der Stapelausgabe anzeigen), müssen Sie dies auch echo on
nach Abschluss call mvn
(in der nächsten Zeile) tun . Dies liegt daran, dass das mvn
Echo ausgeschaltet und nicht wieder eingeschaltet wird.
Joeys Antwort ist großartig, aber vielleicht hilft ein vollständigeres Codebeispiel jedem anderen wie mir, der auch ein ähnliches Problem beim Erstellen mehrerer Maven-Projekte aus einer Batch-Datei in Windows herausfindet:
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
Sie können auch den folgenden Einzeiler haben:
call mvn clean package
call
damit alles, was sie nach dem mvn
Befehl schreiben, ausgeführt wird.
Ich habe mehr Projekte zu laufen, ich habe solche Fledermaus erstellt:
@echo off
SET DEVELOPMENT_HOME=C:\Projects
cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install
cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install
Die beobachtete bahaviour stammt aus der Zeit von MS-DOS 1.0 und es wird aus Kompatibilitätsgründen beibehalten, wie Lösungen von Windows verwenden wird Anruffunktion auf folgende Weise:
call mvn clean
call mvn package
Der "Aufruf" führt ein Stapelverarbeitungsprogramm von einem anderen aus und interpretiert es als Unterprogramm.
Wir können Folgendes verwenden, um einen Maven zu erstellen und ihn zu Entwicklungszwecken an einen beliebigen Unix-Ordner zu übergeben
SET projectName=commonutil
cd %gitpath%\%projectName%
call mvn clean install -DskipTests=true %password%
IF %ERRORLEVEL% EQU 0 (Echo No error found) ELSE goto exitdoor
SET jarpath="%gitpath%\%projectName%\target\%projectName%-0.0.1-SNAPSHOT.jar"
copy /Y %jarpath% "%libpath%"
scpg3 %jarpath% %ssh_profile_name%@%hostname%:%dev_lib_folder_name%
Verwenden
Anruf mvn clean package
sample
------
echo %test%
cd %test%\ManaulActionAddNotes-test
call mvn clean
cd %test%\restAuthentication-test
call mvn clean
gradle