2009-06-17 19 views
11

Kavanoz gibi biten iki maven modülü ve o kavanoza bağlı bir savaşım var.Maven - artifact kaynağına bağımlılığı ekle

Kavanoz modülünün, kaynak modülünü kavanozdaki derlenmiş sınıflarla birlikte paketlemesini ve böylece ikinci modülün buna erişmesini istiyorum. Ben maven-source-plugin kullanmayı denedim, ama bunun çıktısına nasıl bir bağımlılık ekleyeceğim konusunda kafam karıştı. Görünüşe göre bağımlılık varsayılan olarak derlenmiş jar'a gider ve kaynak kodlu jar (maven-source-plugin'in yarattığı "-source.jar" ile biten) değildir.

Derlenmiş kaynaklarda bağımlılığı korurken, "-source.jar" bir bağımlılık olarak nasıl eklenir?

cevap

20

Bunu denemedim, ancak projenizde iki profil oluşturmanız gerektiğini düşünüyorum. Ana kavanozu oluşturan bir tanesi. Diğerleri kaynak kavanozunu oluşturur. Maalesef, bu profili nasıl yapacağınızdan tam olarak emin değilim. Şimdiye kadar iyi bir örnek bulamadım.

(yorumlar doğrultusunda kapsamınızı, aslında bir profil gerekmez. Sadece hangi kaynaklardan dağıtmak ve kaynaklar sınıflandırıcı yoluyla kullanılabilir hale getireceğiz kaynaklar-eklentisi kullanabilirsiniz) Teoride

, sen' d Kaynakları projeye eklemek için 2. profili kullanın. Bu, bu sınıflandırıcıyı kullanan kaynaklar için deponuzda 2. giriş oluşturur. Kaynakları deponuza yükledikten/dağıttıktan sonra, kaynakları doğrudan belirtmek için bağımlılık üzerindeki sınıflandırıcı etiketini kullanarak kaynakları bağımlılık olarak ekleyebilmelisiniz.

Yani Webapp POM böyle bir şey olurdu:

<dependencies> 
    <dependency> 
    <groupId>myGroup</groupId> 
    <artifactId>myJar</artifactId> 
    <version>4.0</version> 
    <type>jar</type> 
    </dependency> 
    <dependency> 
    <groupId>myGroup</groupId> 
    <artifactId>myJar</artifactId> 
    <version>4.0</version> 
    <type>jar</type> 
    <classifier>sources</classifier> 
    </dependency> 
</dependencies> 
+2

Hatta profilleri gerek yoktu, maven-kaynak-eklenti otomatik olarak "kaynaklar" sınıflandırıcı hazır. Sadece bağımlılığa için kaynağını ekledi :) –

+3

Üzgünüm - demek, değil! –

+1

mGWT projemiz için aynı ayarları yaptık. AutoBean arayüzlerini sunucudaki (CXF kullanarak REST servisleri) ve mGWT istemcisinde kullanılan "paylaşılan" bir maven modülüne koyduk. Sorun şu ki, maven gwt: derleme amacı kaynaklara ve tamamlanacak derlenmiş sürümlere ihtiyaç duyar. Yukarıdaki yapılandırma bizim için de iyi çalıştı. – peron

1

Oluşturma bölümünde src dizinini kaynak dizini olarak eklemeyi denediniz mi? Bu, kaynağı inşa edilen kavanoza kopyalamalıdır.

İlgili konular