bat 파일에서 둘 이상의 maven 명령을 실행하는 방법은 무엇입니까?


115

다음과 같은 박쥐 파일을 만들었습니다.

mvn clean;
mvn 패키지;

하지만 작동하지 않고 첫 번째 명령 만 실행됩니다.

누군가 나를 도울 수 있습니까?

답변:


252

사용하다

call mvn clean
call mvn package

배치 파일에는 세미콜론이 필요하지 않습니다. 그리고 사용해야하는 이유 call는 그 mvn자체가 배치 파일이고 배치 파일이를 사용하여 서로를 호출해야하기 때문입니다 call. 그렇지 않으면 제어가 호출자에게 반환되지 않습니다.

후속 명령이 명령 줄에 반영되도록하려면 (일괄 출력으로 표시) 완료 echo on후에도 수행해야합니다 call mvn(다음 줄에서). mvn에코는 꺼지고 다시 켜지지 않기 때문 입니다.


2
같은과gradle
Prabs

27

Joey의 대답은 훌륭하지만 더 완전한 코드 예제는 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

15

다음과 같은 한 줄짜리도 사용할 수 있습니다.

call mvn clean package 

4
그래도 명령 call후에 작성한 모든 내용 mvn이 실행 되도록 사용해야 합니다.
Joey

9

더 많은 프로젝트를 실행할 수 있으며 다음과 같은 박쥐를 만들었습니다.

@echo off
SET DEVELOPMENT_HOME=C:\Projects

cd %DEVELOPMENT_HOME%\Project1\
call mvn clean install

cd %DEVELOPMENT_HOME%\Project2\
call mvn clean install

8

상위 파일에서 다른 배치 파일을 호출하려는 경우 'call'을 사용하여 제어가 상위 배치 파일로 반환되고 계속 실행되도록합니다.

예 : mvn clean install 호출


5

관찰 된 bahaviour는 MS-DOS 1.0 당시부터 왔으며 호환성을 위해 유지됩니다. 솔루션 은 다음과 같은 방식으로 Windows 호출 기능을 사용해야합니다 .

call mvn clean
call mvn package

"호출"은 하나의 배치 프로그램을 다른 배치 프로그램에서 실행하고이를 서브 루틴으로 해석합니다.


-1

다음을 사용하여 maven을 빌드하고 개발 목적으로 모든 유닉스 폴더에 전달할 수 있습니다.

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%

-2

사용하다

요구 mvn clean package

sample
------
echo %test%
cd %test%\ManaulActionAddNotes-test
call mvn clean
cd %test%\restAuthentication-test
call mvn clean

1
여기에 다른 답변보다 더 많은 정보가 있습니까? 받아 들여진 (9 살) 답변의 사본처럼 보입니다
jeb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.