Я сделал файл bat, например:
mvn clean; mvn package;
но он не работает, выполняется только первая команда.
Может кто-нибудь мне помочь?
Я сделал файл bat, например:
mvn clean; mvn package;
но он не работает, выполняется только первая команда.
Может кто-нибудь мне помочь?
Использование
call mvn clean
call mvn package
Обратите внимание, что вам не нужны точки с запятой в пакетных файлах. И причина, по которой вам нужно использовать call
, заключается в том, что mvn
сам является пакетным файлом, а командные файлы должны вызывать друг друга с помощью call
, в противном случае управление не возвращается к вызывающему.
Если вы хотите, чтобы последующие команды отображались в командной строке (показать в пакетном выводе), вы также должны сделать echo on
после завершения call mvn
(на следующей строке). Это происходит потому, что mvn
отключается и не включает его.
Ответ на Joey велик, но, возможно, более полный пример кода поможет кому-то еще, как я, который также выясняет аналогичную проблему создания нескольких проектов maven из пакетного файла в 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
Вы также можете иметь следующий однострочный слой:
call mvn clean package
У меня больше проектов для запуска, я создал такую биту:
@echo off
SET DEVELOPMENT_HOME=C:\Projects
cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install
cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install
Используйте "вызов", когда вы хотите вызывать другой пакетный файл в родительском файле, чтобы элемент управления был возвращен родительскому пакетному файлу, и он продолжит выполнение.
например, вызов mvn clean install
Наблюдаемый bahaviour происходит со времени MS-DOS 1.0 и поддерживается по соображениям совместимости, так как решения вы должны использовать функцию Windows call следующим образом:
call mvn clean
call mvn package
"call" выполняет одну пакетную программу из другой и интерпретирует ее как подпрограмму.
мы можем использовать следующее для сборки maven и передачи его в любую папку unix для разработки
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%