java match parent_Maven的聚合(多模块)和Parent继承
即使是長期從事 Maven 工作的開發人員也不能完全掌握聚合(多模塊)和 Parent 繼承的關系,在使用多模塊時,子模塊總要指定聚合的 pom 為 。由于在大多數示例中都是這么寫的,所以很難讓人搞懂這兩者的具體作用和關系。
實際上在 Maven 中聚合(多模塊)和繼承是兩回事,兩者不存在直接聯系。
繼承
繼承是 Maven 中很強大的一種功能,繼承可以使得子POM可以獲得 parent 中的各項配置,可以對子pom進行統一的配置和依賴管理。父POM中的大多數元素都能被子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,只需要像下面這樣寫。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
org.codehaus.mojo
my-parent
2.0
../my-parent
my-project
其中relativePath元素不是必須的,指定后會優先從指定的位置查找父pom。
聚合(或多模塊)
具有模塊的項目被稱為多模塊或聚合項目。模塊是此POM列出并作為一組執行的項目。通過一個pom打包的項目可以將它們列為模塊來聚合成一組項目進行構建,這些模塊名是這些項目的相對目錄。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
org.codehaus.mojo
my-parent
2.0
pom
my-project
another-project
在列出模塊時,不需要自己考慮模塊間依賴關系,即POM給出的模塊排序并不重要。Maven將對模塊進行拓撲排序,使得依賴關系始終在依賴模塊之前構建。
聚合 VS 父POM
雖然聚合通常伴隨著父POM的繼承關系,但是這兩者不是必須同時存在的,從上面兩者的介紹可以看出來,這兩者的都有不同的作用,他們的作用不依賴于另一個的配置。
父POM是為了抽取統一的配置信息和依賴版本控制,方便子POM直接引用,簡化子POM的配置。聚合(多模塊)則是為了方便一組項目進行統一的操作而作為一個大的整體,所以要真正根據這兩者不同的作用來使用,不必為了聚合而繼承同一個父POM,也不比為了繼承父POM而設計成多模塊。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java match parent_Maven的聚合(多模块)和Parent继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【前端】这可能是你看过最全的css居中解
- 下一篇: 性能测试的重要意义(一)