Odpowiedzi:
Posługiwać się
call mvn clean
call mvn package
Pamiętaj, że nie potrzebujesz średników w plikach wsadowych. Powodem, dla którego musisz użyć, call
jest to, że mvn
sam jest plikiem wsadowym, a pliki wsadowe muszą wywoływać się nawzajem call
, w przeciwnym razie kontrola nie wraca do dzwoniącego.
Jeśli chcesz, aby kolejne polecenia odbijały się echem w wierszu poleceń (pokazywane w wyniku wsadowym), musisz to zrobić również echo on
po zakończeniu call mvn
(w następnym wierszu). Dzieje się tak, ponieważ mvn
wyłącza echo i nie włącza go ponownie.
Odpowiedź Joeya jest świetna, ale być może bardziej kompletny przykład kodu pomoże każdemu takiemu jak ja, który również zastanawia się nad podobnym problemem tworzenia wielu projektów maven z pliku wsadowego w systemie Windows:
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
Możesz również mieć następującą jednowierszową:
call mvn clean package
call
, aby wszystko, co napiszą po mvn
poleceniu, zostało uruchomione.
Mam więcej projektów do uruchomienia, stworzyłem taki bat taki:
@echo off
SET DEVELOPMENT_HOME=C:\Projects
cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install
cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install
Zaobserwowane zachowanie pochodzi z czasów MS-DOS 1.0 i jest zachowane ze względu na kompatybilność, jako rozwiązania należy używać funkcji wywołania Windows w następujący sposób:
call mvn clean
call mvn package
„Wywołanie” wykonuje jeden program wsadowy z innego i interpretuje go jako podprogram.
możemy użyć poniższego, aby zbudować mavena i przekazać go do dowolnego folderu unixowego w celach programistycznych
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%
Posługiwać się
połączenie mvn clean package
sample
------
echo %test%
cd %test%\ManaulActionAddNotes-test
call mvn clean
cd %test%\restAuthentication-test
call mvn clean
gradle