2010-11-04 22 views
16

tôi đang sử dụng plugin lắp ráp maven để đóng gói tệp jar. Nhưng khi tôi chạy mvn package, maven luôn kích hoạt [jar: jar {execution: default-jar}] để tạo tệp jar mặc định. Vì vậy, tôi sẽ có 2 tập tin jar (một được tạo ra bởi plugin lắp ráp và một tạo ra bởi maven jar mà tôi không muốn được tạo ra). Làm thế nào tôi có thể tắt thực hiện: mặc định-jar.vô hiệu hóa việc thực hiện: mặc định-jar

trong tệp pom.xml của tôi, tôi đang sử dụng: <packaging>jar</packaging>. tôi không muốn thay đổi nó thành <packaging>pom</packaging>.

Trả lời

33

(...) Vì vậy, tôi sẽ có 2 file jar (một tạo ra bởi Plugin lắp ráp và một tạo bởi maven jar mà tôi không muốn được tạo ra).

Có vẻ như bạn đang làm những điều khá phức tạp. Có lẽ Maven không phải là công cụ phù hợp trong trường hợp của bạn.

Làm cách nào tôi có thể tắt thực thi: mặc định-jar.

Bạn có thể đặt <phase> việc thực hiện tương ứng với một cái gì đó không rõ, như none:

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <executions> 
     <execution> 
     <id>default-jar</id> 
     <phase>none</phase> 
     </execution> 
    </executions> 
    </plugin> 
    <plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-assembly</id> 
     <!-- this is used for inheritance merges --> 
     <phase>package</phase> 
     <!-- append to the packaging phase. --> 
     <goals> 
      <goal>single</goal> 
      <!-- goals == mojos --> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

Điều này dường như làm việc miễn là bạn đang cung cấp một cái gì đó khác để được cài đặt, giống như một hội đồng (Tôi chỉ thử nghiệm install). Nhưng tất nhiên, đây là một hack.

+0

Đây là một hack, nhưng thật tuyệt khi biết được hack này. Cảm ơn! (+1) –

+0

BTW, bạn có bao giờ ngủ không? Bạn đang ở trên CET quá, phải không? –

+0

@seanizer: LOL. Có, tôi làm :) Và không, tôi hiện không, tôi đang di chuyển. –

3

Trong khi không phải là một câu trả lời trực tiếp cho câu hỏi, bạn có thể loại trừ jar tạo ra bởi maven jar sử dụng <useProjectArtifact>false</useProjectArtifact>

+0

Cảm ơn Raghuram – David

Các vấn đề liên quan