這篇文章將為大家詳細(xì)講解有關(guān)如何在Maven中實(shí)現(xiàn)聚合和Parent繼承,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
創(chuàng)新互聯(lián)公司主營汨羅網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),汨羅h5重慶小程序開發(fā)搭建,汨羅網(wǎng)站營銷推廣歡迎汨羅等地區(qū)企業(yè)咨詢
繼承
繼承是 Maven 中很強(qiáng)大的一種功能,繼承可以使得子POM可以獲得 parent 中的各項(xiàng)配置,可以對子pom進(jìn)行統(tǒng)一的配置和依賴管理。父POM中的大多數(shù)元素都能被子POM繼承,這些元素包含:
groupId
version
description
url
inceptionYear
organization
licenses
developers
contributors
mailingLists
scm
issueManagement
ciManagement
properties
dependencyManagement
dependencies
repositories
pluginRepositories
build
plugin executions with matching ids
plugin configuration
etc.
reporting
profiles
注意下面的元素,這些都是不能被繼承的。
artifactId
name
prerequisites
想要添加 parent,只需要像下面這樣寫。
4.0.0 org.codehaus.mojo my-parent 2.0 ../my-parent my-project
其中relativePath
元素不是必須的,指定后會優(yōu)先從指定的位置查找父pom。
聚合(或多模塊)
具有模塊的項(xiàng)目被稱為多模塊或聚合項(xiàng)目。模塊是此POM列出并作為一組執(zhí)行的項(xiàng)目。通過一個pom
打包的項(xiàng)目可以將它們列為模塊來聚合成一組項(xiàng)目進(jìn)行構(gòu)建,這些模塊名是這些項(xiàng)目的相對目錄。
4.0.0 org.codehaus.mojo my-parent 2.0 pom my-project another-project
在列出模塊時,不需要自己考慮模塊間依賴關(guān)系,即POM給出的模塊排序并不重要。Maven將對模塊進(jìn)行拓?fù)渑判?,使得依賴關(guān)系始終在依賴模塊之前構(gòu)建。
聚合 VS 父POM
雖然聚合通常伴隨著父POM的繼承關(guān)系,但是這兩者不是必須同時存在的,從上面兩者的介紹可以看出來,這兩者的都有不同的作用,他們的作用不依賴于另一個的配置。
父POM是為了抽取統(tǒng)一的配置信息和依賴版本控制,方便子POM直接引用,簡化子POM的配置。聚合(多模塊)則是為了方便一組項(xiàng)目進(jìn)行統(tǒng)一的操作而作為一個大的整體,所以要真正根據(jù)這兩者不同的作用來使用,不必為了聚合而繼承同一個父POM,也不比為了繼承父POM而設(shè)計(jì)成多模塊。
關(guān)于如何在Maven中實(shí)現(xiàn)聚合和Parent繼承就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。