2014-04-10 25 views
4

當我在Eclipse中查看我的有效pom時,可以看到一系列的依賴關係和一個標籤,聲明這是我們的企業超級pom,它必須構成每個項目的一部分。Super POM來自於配置

我實際上無法確定超級pom在配置中的作用。我在maven中查看了我的settings.xml文件,它有遠程存儲庫和內部存儲庫的列表 - 但似乎無法在任何地方看到與超級pom的鏈接。

這是一個由內部原型構建的多模塊maven項目,並且父模塊定義了父級模型...但是當我瀏覽父級模型時,我仍然無法看到超級pom如何發揮作用。

任何意見讚賞。

問候

回答

3

超級POM由<parent>標籤定義:

<parent> 
    <groupId>com.mycompany</groupId> 
    <artifactId>mvn</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
</parent> 
+0

明白了感謝。追溯了Nexus中的原型鏈,最終發現我們最終成爲了我們的企業超級POM(與Maven超級POM不同)。謝謝大家。 – smackenzie

+0

酷!很高興它幫助:) – sircapsalot

1

所有POM隱式地從super POM,其存在於所述行家分佈繼承。這個pom包含所有可以在你的maven項目中被重寫的maven項目的默認值。但是大多數這些默認值並沒有被覆蓋,因爲它們通常構成了maven的一部分,因爲它是一個更接近慣例的構建工具。對於例如,默認build目錄是target,因此這種配置存在於超級POM爲

........ 
<directory>${project.basedir}/target</directory> 
......... 

欲瞭解更多信息,與本POM的實際位置請參考herehere

+0

謝謝,雖然這看起來像一個公司的POM,而不是一個是Maven發行版的一部分,因爲它表明公司名稱在有效的POM,幷包括休眠和一個春天依賴的負載。 – smackenzie

+0

偉大的鏈接順便 – smackenzie

+0

哦,我完全在你的問題中遺漏了公司的話。是的,這是通用實踐來聲明一個公司範圍(或項目範圍)的超級pom,其中提到一般信息,如公司/項目信息,以及從該pom繼承的另一個pom,該pom包含執行標準依賴版本的所有依賴項。 – Shailendra