문제

간단한 exec 명령 Post Maven 설치 단계를 실행하고 싶습니다. 이것을 달성 할 수있는 가장 간단한 방법은 무엇입니까? (새 플러그인 추가없이)

도움이 되었습니까?

해결책

이 명령을 일반 빌드 라이프 사이클의 일부로 실행하려면 바인딩하는 것 외에는 다른 방법이 없습니다. exec 목표에 대한 목표 install 단계:

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.1.1</version>
      <executions>
        <execution>
          <id>my-exec</id>
          <phase>install</phase>
          <goals>
            <goal>exec</goal>
          </goals>
          <inherited>false</inherited>
        </execution>
      </executions>
      <configuration>
        <executable>COMMAND</executable>
      </configuration>
    </plugin>
  </plugins>
</build>

위의 구성을 사용하여 간단한 테스트를 수행했습니다 (사용 ls 새로 생성 된 Maven 프로젝트 및 실행과 함께 "명령") mvn install 다음 출력을 생성합니다.

$ mvn install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-exec-testcase
[INFO]    task-segment: [install]
[INFO] ------------------------------------------------------------------------
...
[INFO] [install:install {execution: default-install}]
[INFO] Installing /home/pascal/Projects/maven-exec-testcase/target/maven-exec-testcase-1.0-SNAPSHOT.jar to /home/pascal/.m2/repository/com/mycompany/app/maven-exec-testcase/1.0-SNAPSHOT/maven-exec-testcase-1.0-SNAPSHOT.jar
[INFO] [exec:exec {execution: my-exec}]
[INFO] pom.xml
[INFO] src
[INFO] target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12 seconds
[INFO] Finished at: Tue Jan 05 19:26:04 CET 2010
[INFO] Final Memory: 11M/75M
[INFO] ------------------------------------------------------------------------

우리가 볼 수 있듯이 명령은 실행됩니다 결국install 위상 (아티팩트를 로컬 저장소에 사본 후).

그리고 정말로 당신이 당신의 pom에 스 니펫을 추가하고 싶지 않다면, 당신은 명시 적으로 전화해야합니다 exec:exec ~ 후에 install Whaley가 제안한 명령 줄에서.

다른 팁

Maven 기본 수명주기는 다음으로 끝납니다 설치 그리고 배포 목표- 이러한 목표에는 사전 및 포스트 버전이 없습니다.

잠재적 옵션은 다음과 같습니다.

  • Exec : Exec Mojo를 배포 단계와 바인딩하십시오. 배포 단계가 실제로 원격 Maven 저장소에 아티팩트를 배포하기위한 것이므로 그 아이디어에 대해 경고합니다.

  • MVN 호출에서 설치 목표를 달성 한 후 Exec : Exec Mojo를 실행하십시오 ... 예 :

    mvn clean install exec : exec -dexec.executable = "yourcommand"-dexec.args = "arguments"

  • 멀티 모듈 프로젝트가있는 경우 끝에 다른 모듈을 만듭니다.u003Cmodules> 그리고 BIND EXEC : EXEC를 해당 모듈 내의 일반적인 목표에 대해 임원으로 보냅니다. 이로 인해이 특정 모듈은 다른 모듈을 다른 것으로 가정합니다. 원자로가 보는 기준 충족되지 않습니다. 내가 일하는 Maven 프로젝트에서 사용하는 일반적인 전략은 "의심 할 때 다른 모듈을 만드는 것"입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top