我不確定是否瞭解如何正確使用父pom項目。我有以下父POM定義:Maven:添加對父pom項目的引用
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>../child1</module>
<module>../child2</module>
</modules>
這時孩子們POM引用父(每個孩子都有自己的一套依賴未圖示):
<parent>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../Parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child1</artifactId>
這種設置工作正常,在eclipse(m2eclipse)中正確解析。我可以部署這些對我的本地庫,並與下面的結構,這應該是正確的結束:
--com
--example
--parent
--0.0.1-SNAPSHOT
--parent-0.0.1-SNAPSHOT.pom
--child1
--0.0.1-SNAPSHOT
--child1-0.0.1-SNAPSHOT.jar
--child1-0.0.1-SNAPSHOT.pom
--child2
--0.0.1-SNAPSHOT
--child2-0.0.1-SNAPSHOT.jar
--child2-0.0.1-SNAPSHOT.pom
我的問題是,我現在要引用的父項目在不同項目(不父母,孩子1或孩子2),從而吸引父母的所有孩子。我可以在其他項目的引用添加到它:
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>pom</type>
</dependency>
</dependencies>
在做這個項目展示了在Eclipse中沒有錯誤,但沒有文物被添加到我的類路徑:不child1,的child2,或任何其依賴關係。
我一直在想,必須有一個「主」POM項目的方式,它本身不是一個罐子,但只有引用其他罐子,然後能夠在某處引用該「主」,但我不能瞭解這是如何完成的。
你最後兩段讓我覺得我不瞭解我如何使用父pom。儘管我使用共享所有子模塊共享的依賴關係,但我確實需要一個依賴關係,我可以將其添加到其他項目中,這些項目將引入不相關但相關的「子項」。我想添加一個依賴項,它將引入_child1_和_child2_。 – trebor
@trebor家長POM不是那個。要創建元項目,請創建一個名爲「common-libraries」的常規Maven項目,並將所有其他項目作爲依賴項引用。父POM是一步構建多個庫,並自動使用正確的構建順序。 –