Jak wykonać więcej niż jedno polecenie maven w pliku bat?
Zrobiłem plik bat w stylu:
mvn clean; mvn package;
Ale to nie działa, tylko pierwsze polecenie jest wykonywane.
Czy ktoś może mi pomóc?6 answers
Użyj
call mvn clean
call mvn package
Zauważ, że nie potrzebujesz średników w plikach wsadowych. A powodem, dla którego musisz użyć call
jest to, że mvn
jest plikiem wsadowym, a pliki wsadowe muszą dzwonić do siebie za pomocą call
, w przeciwnym razie Kontrola nie powróci do wywołującego.
Jeśli chcesz, aby kolejne polecenia były wyświetlane w wierszu poleceń (wyświetlane w wyjściu wsadowym), musisz również wykonać echo on
po zakończeniu call mvn
(W następnym wierszu). Dzieje się tak dlatego, że mvn
wyłącza echo i nie włącza go ponownie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-29 17:19:24
ODPOWIEDŹ Joeya jest świetna, ale może bardziej kompletny przykład kodu pomoże komuś takiemu jak ja, który również rozwiązuje podobny problem budowania wielu projektów Mavena z pliku wsadowego w 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-29 16:59:35
Możesz również mieć następującą jednowierszową:
call mvn clean package
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-05 07:43:20
Mam więcej projektów do uruchomienia, stworzyłem taki bat this:
@echo off
SET DEVELOPMENT_HOME=C:\Projects
cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install
cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-17 09:52:00
Użyj 'call', gdy chcesz wywołać inny plik wsadowy w pliku nadrzędnym, aby Kontrola została zwrócona do macierzystego pliku wsadowego i będzie kontynuowana.
E. g call mvn clean install
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-27 09:39:20
Obserwowany kod pochodzi z czasów MS-DOS 1.0 i jest przechowywany ze względu na kompatybilność, jako rozwiązania należy używać funkcji Windows wywołaj w następujący sposób:
call mvn clean
call mvn package
"call" wykonuje JEDEN program wsadowy z drugiego i interpretuje go jako podprogram.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-28 13:49:42