2011-07-04 9 views

Odpowiedz

167

Korzystając

call mvn clean 
call mvn package 

pamiętać, że nie trzeba średników w plikach wsadowych. Powodem, dla którego musisz użyć call, jest to, że sam plik mvn jest plikiem wsadowym, a pliki wsadowe muszą nawiązywać połączenia z call, w przeciwnym razie sterowanie nie wróci do wywołującego.

Jeśli chcesz, aby kolejne polecenia wyświetlały się w wierszu poleceń (pokaż na wyjściu wsadowym), musisz wykonać także echo on po wykonaniu call mvn (w następnym wierszu). Dzieje się tak, ponieważ mvn wyłącza echo i nie włącza go ponownie.

+2

samo z 'gradle' – Prabs

12

Można również mieć następującą jedno-liner:

call mvn clean package 
+3

Mimo to powinny używać 'call', aby wszystko, co napisali po uruchomieniu polecenia' mvn'. – Joey

6

mam więcej projektów do uruchomienia, stworzyłem taki bat to:

@echo off 
SET DEVELOPMENT_HOME=C:\Projects 

cd %DEVELOPMENT_HOME%\Project1\ 
call mvn clean install 

cd %DEVELOPMENT_HOME%\Project2\ 
call mvn clean install 
22

odpowiedź Joey'a jest super, ale być może bardziej kompletny przykład kodu pomoże nikogo takiego jak ja, kto też zastanawianie się podobny problem budowę 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 
6

Użyj „rozmowa” gdy chcemy wywołać inny plik wsadowy w pliku nadrzędnym, tak że kontrola zostanie zwrócony do pliku rodzic wsadowym i będzie kontynuować wykonanie.

np wezwanie mvn czystej instalacji

1

Obserwowany bahaviour pochodzi z czasów MS-DOS 1.0 i jest utrzymać ze względu na kompatybilność, jak rozwiązania będą korzystać z Windows zadzwoń funkcję w następujący sposób:

call mvn clean 
call mvn package 

"Połączenie" wykonuje jeden program wsadowy z drugiego i interpretuje go jako podprogram.

Powiązane problemy