2011-05-12 2 views
5

[업데이트] 원본 질문 (아래)이 해결되었습니다. 나는maven appassembler 플러그인에 현재 아티팩트가 포함되어 있지 않습니다. 반복하면

mvn package appassembler:assemble 

대신

mvn package 
mvn appassembler:assemble 

질문의 호출 ​​할 필요가 왜 차이가있다?

[원본]

나는 모든 종속성을 조립으로 명령 줄 도구를 만들 수 maven appassembler plugin를 사용하는 것을 시도하고있다. 거의 작동하지만 현재 모듈의 아티팩트가 누락되었습니다. 모든 종속 아티팩트가 repo에 복사되고 bat의 classpath에는 현재 아티팩트가 포함됩니다. 다음과 같이 구성은 다음과 같습니다

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>appassembler-maven-plugin</artifactId> 
      <configuration> 
       <platforms> 
        <platform>windows</platform> 
        <platform>unix</platform> 
       </platforms> 
       <programs> 
        <program> 
         <mainClass>${mainclass}</mainClass> 
         <name>huffman</name> 
        </program> 
       </programs> 
      </configuration> 
     </plugin> 

어떤 아이디어?

답변

11

목표는 독립 실행 형으로 실행되지 않지만 라이프 사이클의 일부로 설계되었으므로 package의 목표에 따른 프로세스에 따라 프로젝트 인스턴스에 생성 된 정보를 반환해야합니다. 두 개의 Maven 명령으로 실행하면 정보가 손실됩니다. 이것은 당신이 그럼 그냥 mvn package을 실행해야하고, 두 단계가 실행되는 것을 의미합니다

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>appassembler-maven-plugin</artifactId> 
    <configuration> 
    ... 
    </configuration> 
    <executions> 
    <execution> 
     <id>assemble</id> 
     <goals> 
     <goal>assemble</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 

대신 다음 명령 중 하나의

, 당신은 같은 것을 사용하여야한다.

appassembler 부분을 선택 사항으로 만드는 것이 목적이라면 위와 동일한 코드가있는 프로파일에 넣을 수 있습니다.