2011-03-23 1 views
1

멀티 모듈 프로젝트가 있습니다.Maven : 어셈블리를 결과 artifact로 사용 - appendAssemblyId == false?

마지막 모듈은 "assemble"입니다.이 모듈은 배포 용으로 사용할 수있는 하나의 큰 .jar에 몇 개의 모듈 .jar를 함께 모으기위한 것입니다. 이 모듈은 다른 아무것도하지 않는다, 그래서 나는이 한 :이 동작은 단순히 IDE에서 (넷빈즈 7.0) 결과 항아리를 실행할 수 있도록하려면

<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
      <appendAssemblyId>false</appendAssemblyId> 
      ... 
     </configuration> 
    </plugin> 
    </plugins> 

합니다.

메이븐은 정확히 내가 원하는 않지만,라고이 : 내 목표를 달성하기 위해 권장되는 방법은 아니다처럼

[assembly:single] 
Reading assembly descriptor: src/assembly/assembly.xml 
Building jar: /mnt/ssd1/_projekty/JBoss/bots/JawaBot/2.0/assemble/target/JawaBot-assemble-2.0.0-SNAPSHOT.jar 
Configuration options: 'appendAssemblyId' is set to false, and 'classifier' is missing. 
Instead of attaching the assembly file: /mnt/ssd1/_projekty/JBoss/bots/JawaBot/2.0/assemble/target/JawaBot-assemble-2.0.0-SNAPSHOT.jar, it will become the file for main project artifact. 
NOTE: If multiple descriptors or descriptor-formats are provided for this project, the value of this file will be non-deterministic! 
Replacing pre-existing project main-artifact file: /mnt/ssd1/_projekty/JBoss/bots/JawaBot/2.0/assemble/target/JawaBot-assemble-2.0.0-SNAPSHOT.jar 
with assembly file: /mnt/ssd1/_projekty/JBoss/bots/JawaBot/2.0/assemble/target/JawaBot-assemble-2.0.0-SNAPSHOT.jar 

이 메시지가 보인다. 더 나아 졌습니까?

답변

2

어셈블리 플러그인은 디스크립터의 어셈블리 ID로 구성된 '분류 자'로 이슈를 생성합니다. 주요 인공물 인 AFAICT가 생성되지 않습니다.

maven-shade-plugin을 사용하는 것이 더 좋을뿐만 아니라 maven-jar-plugin을 구성하여 manifest 클래스 이름을 설정하여 java -jar이 작동하도록 할 수 있습니다. 음영 플러그인은 주요 아티팩트를 생성 할 수 있습니다.

+0

+1 maven-shade-plugin의 minimizeJar 기능! –

관련 문제