2016-03-22 26 views
1

Yaklaşık on bağımlılıkla birlikte bir maven projem var.Bir kavanoz ve tüm bağımlılıkları maven ile yeni bir kavanoz içinde paketleme

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4</version> 
    <executions> 
     <execution> 
      <id>create-executable-jar</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <configuration> 
       <descriptors> 
        <descriptor>assembly.xml</descriptor> 
       </descriptors> 
       <archive> 
        <manifest> 
         <mainClass>myApp.Main</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Ama şimdi, daha önce bir adım ekledi: önce, maven-assembly-plugin tek kavanoz sayesinde bütün bunlar paketi için kullandı. Uygulamamın kavanozunu oluşturacak bir eklentim var. Bu yüzden sadece montaj eklentisinin bu kavanoza bağımlılıkları eklemesini istiyorum. Ne yazık ki, eklenti bu jar'ı kullanmaz, bunun yerine, derleyiciden gelen sonucu kullanıyor gibi görünüyor.

Eklentinin sonucu yerine eklentinin daha önce oluşturulan jareyi kullanmasını istediğimin bir yolu var mı?

+0

Bu kavanoza bağımlılıkları ekleme * ne demek istiyorsun? JAR'ı kim üretir? Bu kadar basit değil. Uygun bir Manifest'e sahip olmalısın. – Tunaki

+0

Temel olarak, http://stackoverflow.com/questions/36150297/how-to-assembly-a-project-after-using-proguard-maven-plugin?noredirect=1#comment59948505_36150297 ile aynı sorudur, ancak başka bir yaklaşımla . Proguard başarılı bir kavanozu başarılı bir şekilde üretiyor ancak bağımlılıkları daha sonra nasıl ekleyeceğimi bilemiyorum. Bağımlılıkları da ekleyebilirim ve sonra da şaşırtabilirim, ancak Proguard bu durumda başarısız olur (çözümlenmemiş referanslar ...) – Sharcoux

+0

Bunu yapmak istemezsiniz. Kesinlikle hayır. Sorunu diğer soruda çöz, kendini burada incitiyorsun. – Tunaki

cevap

3

Maven gölgesi eklentisini kullanmayı deneyin. Ne gibi bir şeye ihtiyacınız var:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>2.3</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
+1

OMG! İşe yaradı ! 3 gün bununla savaşıyorum, kızıyordum. Sana sarılmak istiyorum adamım! – Sharcoux

+0

yardım etmekten mutluluk duyarız - sarılmak gerekmez; ^) – Stormcloud

İlgili konular