명령 줄에서 직접 Maven 플러그인 실행을 실행하는 방법은 무엇입니까?


95

ID가 있고 어떤 단계에도 바인딩되지 않은 실행이 구성된 플러그인 (antrun)이 있습니다. 이 실행을 명령 줄에서 직접 실행할 수 있습니까?

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <id>my-execution</id>
      ...
    </execution>
  </executions>
</plugin>

다음과 같이 실행하십시오.

mvn my-execution

아니면 적어도

mvn magicplugin:execute -DexecutionId=my-execution

답변:


130

이 기능은 된 구현 으로 MNG-5768 , 메이븐 3.3.1에서 사용할 수 있습니다.

변경 사항은 다음과 같습니다.

선택적 @ execution-id 매개 변수를 허용하도록 직접 플러그인 호출 구문을 확장합니다 (예 : org.apache.maven.plugins : maven-remote-resources-plugin : 1.0 : process @ executionId).

따라서 귀하의 경우 :

mvn antrun:run

용도 default-cli실행 ID, 그리고 :

mvn antrun:run@my-execution

pom에 구성된 실행을 사용합니다.


1
아티팩트 ID "maven-antrun-plugin"에서에서 사용해야하는 "antrun"이라는 것을 어떻게 알 수 mvn antrun:run있습니까?
mks-d

1
@ MKS-d는 볼 pluginGroups이유에 대해 org.apache.maven.plugins:maven-antrun-plugin로 지칭 될 수있다 antrun.
Joe

1
@Joe 감사합니다. 플러그인 그룹 위에 플러그인 접두사 해결 메커니즘도 분명히 있습니다 ...
mks-d

51

maven 플러그인을 실행하는 가장 직접적인 방법은 명령 줄에서 직접 플러그인 목표를 지정하는 것입니다.

mvn groupId:artifactId:version:goal

추가 정보 : Maven 플러그인 개발 가이드


1
그러나 정확히 "default-cli"실행을 어떻게 실행할 수 있습니까? 플러그인 정의에 여러 실행이있는 경우.
Anton Balashov

나는 Spring Boot Jasypt 유틸리티 플러그인을 실행하기 위해 싸우고 있었는데, 어떤 이유로 든 Maven에서 인정받을 수있는 유일한 방법은 위의 조언을 따르는 것입니다. 목표를 직접 지정 ( mvn jasypt:encrypt ...)하는 것만으로는 충분하지 않았습니다. 감사합니다 @ dimitri-dewaele.
Mike

15

당신이 찾고있는 것은 Default + Plugin + Execution + IDs에 캡처 되었지만 현재는 지원되지 않습니다. 그러나 MNG-3401 의 의견에 따르면 (끝까지 읽으십시오) :

명령 줄에서 직접 호출되는 mojo의 경우 다음과 같이 executionId : 'default-cli'를 사용하여 POM에서 구성을 제공 할 수 있습니다.

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <executions>
    <execution>
      <id>default-cli</id>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
          <descriptorRef>project</descriptorRef>
        </descriptorRefs>
      </configuration>
    </execution>
  </executions>
</plugin>

이것은 Maven 2.2.0 및 3.x에서 작동합니다.

아마 이것으로 충분할 것입니다.


귀하의 답변이 정확하다면 그것은 정확히 질문 이벤트가 아닙니다.).
토니 Chemit
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.