단일 Maven 플러그인 실행을 실행 하시겠습니까?


98

나는 경험 많은 Maven 사용자라고 생각했지만 이것을 수행하는 방법에 대해 정신적으로 차단하고 있습니다!

Maven SQL 플러그인을 사용하여 내가 정의하고 pre-integration-test단계에 바인딩 한 플러그인 실행을 통해 데이터베이스에 스키마를 삭제, 생성 및 설치할 수있었습니다 .

그러나 이제 명령 줄에서 원할 때마다 동일한 SQL 플러그인을 사용하여 샘플 데이터를 삽입하고 싶습니다. 즉, 수명주기 목표에 얽매이지 않습니다. 몇 가지 샘플 데이터 세트가 있으므로 몇 가지 다른 실행을 정의하고 싶습니다.

그러나 아마도 실행 ID를 사용하여 명령 줄에서 이러한 실행 중 하나를 실행하는 방법이 있습니까?


답변:


137

명령 줄에서 직접 Maven 플러그인 실행을 실행하는 방법에서 언급했듯이 ? 이 기능은 한 구현 으로 MNG-5768 및 메이븐 3.3.1로 제공된다.

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

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

따라서 실행에 ID를 제공하는 한 :

mvn sql:execute@specific-execution-id

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


이것은 대단합니다 :)
GabrielBB

49

그러나 아마도 실행 ID를 사용하여 명령 줄에서 이러한 실행 중 하나를 실행하는 방법이 있습니까?

아니요, 불가능합니다 . 하지만 가능한 것은 "특수" 실행 ID를 사용하여 명령 줄에서 플러그인을 호출 할 때 사용할 "a" 구성 을 정의 하는 것입니다default-cli .

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>sql-maven-plugin</artifactId>
  <version>1.4</version>
  ...
  <executions>
    <execution>
      <id>default-cli</id>
      <configuration>
        ...
      </configuration>
    </execution>
    ...
  </executions>
</plugin>

그리고 간단히 mvn sql:execute.

자세한 내용은 아래를 참조하십시오 ( Maven 2.2.0 릴리스 노트 ).

  • MNG-3401- Maven 2.2.0부터 명령 줄에서 직접 호출 된 목표 executionIddefault-cli. 이전에는 명령 줄 목표에 대한 모든 구성이 플러그인 수준 구성으로 이동해야했지만 Maven 2.2.0에서는 명령 줄별 구성을 자체 <execution>. 자세한 내용은 기본 실행 ID 가이드를 참조하세요 .

1
두 가지 프로필을 사용하여 원하는 것을 달성 할 수있을 것입니다
Daniel Kaplan

4
이 답변은 현재 Maven의 현재 버전에서 구식입니다. @Joe에서 제공하는 답변을 참조하십시오
Noremac
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.