2009-09-18 3 views
2

제 3 자 애플리케이션 용 플러그인 프레임 워크의 다양한 구성 요소를 빌드하는 수많은 maven 프로젝트가 있습니다. 나는 집계 (< 모듈 > 요소)를 사용하여 모든 하위 프로젝트를 포함하는 마스터 프로젝트를 가지고 있습니다. 이 마스터 프로젝트는 또한 메이븐 어셈블러 플러그인을 호출합니다. 이제 모든 하위 프로젝트를 빌드하고 어셈블러가 출력/파일/소스/리소스 등을 마스터 빌드 디렉토리에 복사 한 다음 모든 파일을 단일 배포 zip으로 압축 할 수 있습니다. 나는 명령을 사용하여이 작업을 수행 :플러그인에 대한 입력으로 Maven 어셈블러 플러그인의 출력 사용

이 모든 위대한 작품을 조립 :

MVN 패키지 어셈블리. 이제이 zip 파일을 다른 maven 플러그인에 전달하여 ZIP 내용을 나열한 사용자 지정 매니페스트 파일을 만든 다음이 매니페스트 파일을 zip 파일에 다시 삽입합니다. 나는 이것을하기 위해 플러그인을 작성했으며 제대로 작동한다.

제 문제는 빌드 프로세스의 일부로이 플러그인을 maven에서 실행 중입니다.

플러그인은 어셈블러의 출력이 필요하지만 어셈블러 이후에는 플러그인을 실행하지 않는 것 같습니다.

아무도 도와 줄 수 있습니까?

답변

1

타겟/어셈블리에 어셈블리를 생성하기 위해 어셈블리가 이미 정의되었다고 가정하면 mvn install (예 :)을 실행하고 플러그인을 실행할 수 있도록 플러그인의 실행을 standard lifecycle 단계에 바인딩하기 만하면됩니다 해당 라이프 사이클 동안.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>generate-assembly</id> 
     <phase>package</phase> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     <configuration> 
      <!--your configuration here --> 
      ... 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
는 어셈블리 파일에 액세스 할 수 있도록 그런 다음, (통합 테스트를 말한다) 이후의 단계로 플러그인의 실행을 결합

: 각 플러그인 것이 방법을 사용

<plugin> 
    <groupId>your.plugin.groupId</groupId> 
    <artifactId>your-artifactId</artifactId> 
    <executions> 
     <execution> 
     <id>mung-manifests</id> 
     <phase>package</phase> 
     <goals> 
      <goal>your-goal-name</goal> 
     </goals> 
     <configuration> 
      <assemblyDirectory>${project.build.directory}/assemblies</assemblyDirectory> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

mvn package (또는 설치, 확인, 배포 등과 같은 이후 단계)을 실행할 때 관련 단계 (패키지)에서 실행될 수 있습니다. 플러그인이 조립 플러그인 후 을 정의해야

주 (서로 다른 단계에있을 경우에만 같은 단계에서이 순서에 대한 문제가되지 않는다)이 나중에 실행되도록합니다.

관련 문제