2012-03-17 12 views
11

Tek ihtiyacım olan bu. Ek ayrıntılar: Bir src/bootstrap/java klasörüne ve normal src/main/java klasörüne sahibim. Her birinin belli nedenlerden dolayı ayrı bir kavanoza gitmesi gerekiyor. Ben this kullanarak önyükleme kavanoz üretmek başardı:Bir paket kümesini maven yapı kavanozu dışında nasıl hariç tutabilirsiniz?

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <executions> 
     <execution> 
     <id>only-bootstrap</id> 
     <goals><goal>jar</goal></goals> 
     <phase>package</phase> 
     <configuration> 
      <classifier>bootstrap</classifier> 
      <includes> 
      <include>sun/**/*</include> 
      </includes> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

Ama düzenli kavanoz hala önyükleme sınıflarını kapsamaktadır. this answer ile bootstrap sınıflarını derliyorum.

Bir myproject.jar oluşturmak için herhangi bir ışık önyükleme sınıfları OLMADAN?

cevap

16

Sen kimliği için kullanılması "default-kavanoz" lazım:

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <executions> 
     <execution> 
     <id>only-bootstrap</id> 
     <goals><goal>jar</goal></goals> 
     <phase>package</phase> 
     <configuration> 
      <classifier>bootstrap</classifier> 
      <includes> 
      <include>sun/**/*</include> 
      </includes> 
     </configuration> 
     </execution> 
     <execution> 
     <id>default-jar</id> 
     <phase>package</phase> 
     <goals> 
      <goal>jar</goal> 
     </goals> 
     <configuration> 
      <excludes> 
      <exclude>sun/**/*</exclude> 
      </excludes> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
+2

Eğer belirli yürütme kimliği çalıştırmak için kullanılan ne komuta ettiğini söyleyebilir misiniz. –

+0

Teşekkürler! 'Varsayılan-jar' belirtmek zorunda olan anlaşma nedir? Maven-jar-plugin bunun için mi görünüyor? – asgs

0

ProGuard kullanıyor musunuz? Kullanılmayan kodu çıkarmak için kullanıyorum. Bir Maven eklentisi olarak ekleyebileceğiniz seems.

1

Sanırım bir pomdan iki kavanoz üretmeye karar vermeden önce buna bir göz atabilirsiniz.

Maven best practice for generating multiple jars with different/filtered classes?

yine iki kavanoz almak için karar verirseniz

, muhtemelen bu kullanarak kayıt olabilirsiniz. Uygun hariç tutmaları belirtmelisiniz.

<build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-jar-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>only-bootstrap</id> 
      <goals><goal>jar</goal></goals> 
      <phase>package</phase> 
      <configuration> 
       <classifier>only-library</classifier> 
       <includes> 
       <include>**/*</include> 
       </includes> 
       <excludes> 
       <exclude>**/main*</exclude> 
       </excludes> 
      </configuration> 
      </execution> 
      <execution> 
      <id>only-main</id> 
      <goals><goal>jar</goal></goals> 
      <phase>package</phase> 
      <configuration> 
       <classifier>everything</classifier> 
       <includes> 
       <include>**/*</include> 
       </includes> 
       <excludes> 
       <exclude>**/bootstrap*</exclude> 
       </excludes> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build>