2013-07-13 4 views
0

(일반적으로 명령 행에서 호출되는) 타사 도구에서 코드를 생성하는 프로젝트가 있습니다. 이 도구를 maven 빌드 설정에 맞춰야합니다. 예를 들어, maven compile 전에 호출하고 싶습니다.빌드 도중 Maven을 사용하여 사용자 정의 빌드 코드 삽입/호출

수많은 maven 플러그인 중 하나를 사용하여 임의의 Java 프로그램을 실행할 수 있습니까? POM에 어디서 삽입합니까?

답변

3

당신은 Exec Maven Plugin를 사용하려면이 POM 파일의 "구축"절에 지정해야 플러그인 다른 좋아 , exec 목표를 사용하면 외부 애플리케이션을 실행할 수 있습니다.

외부 응용 프로그램이 실행될 때 default Maven Build Lifecycle을 고려해야합니다.이

  • 통합 테스트는
  • 설치 확인

    1. 유효성을
    2. 컴파일
    3. 테스트
    4. 패키지 : 당신이 build 과정을 실행하면, Maven은 다음 (엄격하게 순서) 단계 실행
    5. 배포

    당신이 결정할 수 있습니다 executions 요소 플러그인Exec에서 메이븐의 phase 요소를 구성하여 외부 응용 프로그램을 실행 위의 단계를하는 :

    <!-- Begin of POM --> 
    <project> 
        ... 
        <build> 
         <plugins> 
          <!-- Begin of Exec Maven Plugin --> 
          <plugin> 
           <groupId>org.codehaus.mojo</groupId> 
           <artifactId>exec-maven-plugin</artifactId> 
           <version>1.2.1</version> 
           <executions> 
            <execution> 
             <phase>validate</phase> <!-- Here, for example, validate --> 
             <goals> 
              <goal>exec</goal> 
             </goals> 
            </execution> 
           </executions> 
           <configuration>...</configuration> 
          </plugin> 
          <!-- Begin of Exec Maven Plugin --> 
         </plugins> 
        </build> 
        ... 
    </project> 
    <!-- End of POM --> 
    
  • 2

    사용 받는다는 - 간부 - 플러그인 :

    <build> 
        <plugins> 
         <plugin> 
          <groupId>org.codehaus.mojo</groupId> 
          <artifactId>exec-maven-plugin</artifactId> 
          <executions> 
           <execution> 
            <id>exec-one</id> 
            <phase>verify</phase> 
            <configuration> 
             <executable>echo</executable> 
             <arguments> 
              <argument>exec one</argument> 
             </arguments> 
            </configuration> 
            <goals> 
             <goal>exec</goal> 
            </goals> 
           </execution>      
          </executions> 
         </plugin> 
        </plugins> 
    

    그냥

    관련 문제