2016-03-27 33 views
2

Java projeleri üzerinde maven ve eclipse IDE kullanarak çalışıyorum.Bağımlı projelerle Maven build

Ben 3 proje saçak gibi yani P1, P2 ve Ana Projesi

Ben P1, P2, Ana Projesi için bireysel saçakları var, dahil ettik P1, P2 Ana Projesi ve Ana proje için modüller kabul edildiği gibi ambalaj var Ben savaşa ambalaj değiştirirseniz sadece

ben oluşturulan savaşta P1, P2 ve Ana Proje sınıf dosyaları içeren bir savaş kurmak istiyordu

Project build error: 'packaging' with value 'war' is invalid. Aggregator projects require 'pom' as packaging.

hata

altında olsun.

kimse Advance

cevap

3

Sen ambalaj türleri (pom ve war) karştramazsnz aynı

Teşekkür ulaşmak için herhangi işaretçiler verebilir. MainP1 ve P2 bağlıdır

<project> 
    <groupId>org.example</groupId> 
    <artifactId>modules</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <modules> 
    <module>P1</module> 
    <module>P2</module> 
    <module>Main</module> <!-- This contains your WAR --> 
    </modules> 
    ... 
</project> 

Sizin projeyi: Sen dördüncü POM uygulamaya koyması gerekmektedir. Maven/Eclipse sizin için yapı siparişini çözecek. İstemiyorsanız, Eclipse'de module yapıtını almanıza gerek yoktur, ancak muhtemelen en üstteki POM'yi en az bir kez yüklemeniz gerekir.

İsterseniz alt modüllerin kendisinden devralmasına izin vermek için, yukarıdaki POM'da ortak yapılandırmalar da yapabilirsiniz. POM Packaging

1

modüllerinin toplama için kullanılan vs.

(Eklenti Yönetimi bölümünden) ortak (Bağımlılık Yönetimi bölümünden) bağımlılıklar veya eklentileri sizin durumda, gelen kaynaklar taşımak zorunda " Ana Proje "POM paketini başka bir modüle, örn .: P0. O zaman bu P0 modülünde bir ambalaj SAşağı olmalıdır. Ek olarak, P0 modülü P1 ve P2 modülüne bağlı olabilir. P0, P1, P2

  • P0 - on Main Projesi'nden kaynaklarla bağımlı WAR ambalaj: P1 - modülleri ile ambalaj POM

    • Main Project:

      Böyle proje yapıya sahip olabilir , P2

    • P1 - paketleme JAR
    • P2 - Eğer mvn package ile Main Project oluştururken ambalaj JAR

, sen P0 modülün /target dizinde WAR dosyası olacaktır.