4

mvn 명령을 호출 할 때 명령 행에 플래그가있을 때 Maven이 특정 플러그인을 실행하게합니다. 예를 들어Maven : 명령 행 플래그가있는 경우에만 플러그인을 실행하십시오.

:

는이 전 maven-foo-plugin라는 플러그인이 있다고 가정 해 봅시다. maven 명령을 호출 할 때 깃발이 --foo 인 경우에만이 플러그인을 실행하기를 원합니다.

그래서

, 대신 말하는 ...

mvn install 

... 내가 말할 것 ...

mvn install --foo 

첫 번째는 플러그인 maven-foo-plugin 전화/사용하지해야하지만, 두 번째 하나해야합니다. 기본적으로이 플러그인을 실행하고 싶지는 않지만 --foo이있는 경우에만 해당 플러그인을 실행하고 싶습니다. 이 매개 변수를 추가하기 위해이 maven-foo-plugin에 추가하는 다른 매개 변수가 있습니까?

내가 사용중인 플러그인은 파일을 압축 해제하는 작업이있는 maven-antrun-plugin입니다. 물론, 때로는이 파일이 있고 때로는 그렇지 않습니다. 때로는 선물이 없기 때문에 필요하지도 않습니다. 그래서, 나는이 플러그인을 켜고 끌 수있는 방법이 필요하다.

답변

4

@ Gab에서 언급했듯이 Maven 프로파일을 사용하는 것이 좋습니다. 프로파일을 작성하고 프로파일에서 플러그인을 구성하십시오. 당신이 debug 변수를 정의하면 Maven을 호출 할 때 위의 예는 프로필을 활성화 할

<profiles> 
    <profile> 
    <activation> 
     <property> 
     <name>debug</name> 
     </property> 
    </activation> 
    ... 
    </profile> 
</profiles> 

:

mvn install -Ddebug 

제발 그런 다음 프로파일의 activation 섹션에서, 또는 값을 사용하지 않고, 환경 변수를 참조 환경 변수를 -D으로 접두어로하여 Maven을 실행중인 JVM에 전달해야한다는 점에 유의하십시오.

자세한 내용은 여기에서 찾을 수 있습니다 : http://maven.apache.org/guides/introduction/introduction-to-profiles.html 해당 프로파일 내에서

+0

, 당신은 두 개의 플러그인을 실행할 수 있습니까? 다른 하나가 바로 뒤따라? –

+0

예, 프로필에 원하는만큼의 플러그인을 가질 수 있습니다. 각 프로필에는'build/plugins' 섹션이 있습니다. 여기서 주 빌드에서하는 것처럼 플러그인을 나열 할 수 있습니다. – nwinkler

+0

하나의 프로필에 2 개의 플러그인이 있다면 먼저 실행할 프로필을 어떻게 말합니까? –

5

maven에서 조건부 동작을 트리거하는 올바른 방법은 프로필을 사용하는 것입니다. 당신은 그래서 당신은 다음

Maven: Using a Plugin Based On Profile

를 참조 (프로파일을 활성화하기 위해 당신은 또한 특정 속성 값을 지정할 수 있습니다)

mvn targetPhase -P myprofile

사용하여 실행을 트리거, 플러그인 활성화를 포함하여 특정 프로필을 구성 할 수 있습니다