2011-09-21 18 views
6

Maven’de yeniyim ve şirketimin modüllerinin neden 'modül grupları' olarak düzenlendiğini anlamaya çalışıyorum, ancak her bir alt modül de üstünü açıkça beyan ediyor. POM Reference'ın difference between inheritance and aggregation hakkında ne söylemeye çalıştığını tam olarak anlamadım. ÖrneğinApache Maven: Kalıtım, Toplama ve Bağımlılıklar arasındaki fark nedir?

, bir üst modülü:

<groupId>example.group</groupId> 
<artifactId>util</artifactId> 
<packaging>pom</packaging> 
<name>Util Parent</name> 

<modules> 
    <module>util_client</module> 
    <module>util_core</module> 
    <module>util_server</module> 
</modules> 

Ve çocuklarından birinin:

<parent> 
    <artifactId>util</artifactId> 
    <groupId>example.group</groupId> 
    <version>trunk-SNAPSHOT</version> 
</parent> 

<groupId>example.group.util</groupId> 
<artifactId>util_core</artifactId> 
<packaging>jar</packaging> 
<name>Util Core</name> 

Neden her ikisine de beyan? Gereksiz mi? işler daha da karmaşık hale getirmek için, util Altmodüllerin bazı birbirinden bağlıdır: Bu bir soru garipti, ama vay bu kafa karıştırıcı ise

<groupId>example.group.util</groupId> 
<artifactId>util_client</artifactId> 
<packaging>jar</packaging> 
<name>Util Client</name> 

<dependencies> 
    <dependency> 
     <groupId>example.group.util</groupId> 
     <artifactId>util_core</artifactId> 
    </dependency> 
</dependencies> 

Üzgünüm! Yardım ettiğin için teşekkür ederim.

cevap

9

Alt modülleri tanımladığınızda, bunları üst düzeyden bir kerede kurabilir ve serbest bırakabilirsiniz. İkinci örnekte devralma kullandığınızda

, bir kez tanımlanan ebeveyn POM'dan tanımları kullanabilir, (gibi yazılımların sürümleri kullanmaya olan) bir modül başka bir modülden kaynaklara ihtiyaç duyduğunda Son örnekte

, Bunu bir bağımlılık olarak ekleyebilir ve otomatik olarak oluşturma yoluna indirip ekleyecektir.

+0

Neden "util_core" öğesini "util_client" alt modülü olarak belirtmek istemiyorum? Util_client hala derleniyor mu? –

+0

'util_core'' mvn install 'kurulduktan sonra derlenmeyecektir. Eğer bunu en üst seviyeden yaparsanız hepsini sırayla derleyecektir. –

İlgili konular