2010-03-24 21 views
6

MAVEN'DE tanımlanan bir savaş ve kavanoz projem var.Kavanoz, savaş projesindeki derslere dayanır.

Kavanoz proje savaşın eklentisi true savaş projesinde <attachClasses> yılında

ekleyerek paket modunda bu çalışma almak başardı Savaş projesi

bağlıdır.

Ve bağımlılık yapma kavanoz pom içinde

 <groupId>com</groupId> 
     <artifactId>oneway-delegator</artifactId> 
     <version>1.0</version> 
     <classifier>classses</classifier> 

için.

Ancak yalnızca derleme çalıştırıldığında sınıflar jar oluşturulmaz ve her şey başarısız oluyor.

Herhangi bir fikir millet?

+0

Sorunu anlayamıyorum. Savaş projeniz kavanoz projenize mi yoksa başka bir şeye mi bağlı? Savaş projeniz bir kavanoz projesine bağlıysa, çok ileri doğru olmalı ve sınıflandırma öğesi dışında bağımlılık beyanı iyi görünmelidir. Gerekli olmamalı. – Buhb

+0

savaş kavanoz bağlıdır buysa, ben bu soran olmaz, savaş (söz konusu ikinci hat) – Roman

cevap

12

Ancak yalnızca derleme çalıştırıldığında sınıflar jar oluşturulmaz ve her şey başarısız oluyor.

Sen gerçekten maven-savaş eklenti/paket sınıfları ve kaynakları aşağıdaki yapılandırmaya sahip bir sınıflandırıcı ile "ekli" JAR eser olarak sizin webapp dahil dağıtmak için yapılandırabilirsiniz

:

<project> 
    ... 
    <artifactId>mywebapp</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>X.Y</version> 
     <configuration> 
      <attachClasses>true</attachClasses> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 

Ancak bu eser, package aşamasında oluşturulur, bu nedenle yalnızca compile çalıştırırsanız orada olmayacağını düşünmeyin. Bu yapılandırma seçeneği çok özel kullanım durumunda, sıska savaş kullanım durumu üzere ortaya çıkmış

Not. Bu JAR'ı başka bir projede yeniden kullanmanız gerekiyorsa, önerilen yaklaşım genel olarak sınıfları JAR'ı oluşturan ayrı bir modüle taşımak ve daha sonra söz konusu JAR'a web sunucunuzdan ve diğer tüm projelerin ona ihtiyacı olmak.

7

Bunu yapma. Bu, bir savaşa (Java EE özel uygulama paketi) bağımlı bir kavanoz (düz java kodu) yapmak için kabul edilebilir bir bağımlılık değildir. Savaşınızda bağımlı olduğunuz bir kodunuz varsa, bu kod kendi jarunda olmalı ve hem web uygulaması hem de jar projesi üzerinde ortak bir bağımlılık olacaktır.

+0

Evet bağlı olarak onun kavanoz, yani teşekkürler ... iyi bir fikir gibi – Roman

+1

İyi tavsiyelerde geliyor. "Şüphe edildiğinde, başka bir modül oluşturun", maven söz konusu olduğunda. – whaley

+2

Bir savaş ve ilk webapp bazı entegrasyon testleri içeren ikinci bir maven modülü olduğunda yaygın bir durum. Bu durumda, webapp sınıflarını ve bağımlılıkları kullanabilmek son derece yararlı olacaktır. –

İlgili konular