명령 줄에서 직접 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.