Maven學習之pom.xml常用標籤元素&&依賴衝突的解決&&繼承 ( I )

pom.xml常用標籤元素:

modelVersion 指定了當前pom版本
groupId 反寫的公司網址+項目名
artifactId 項目名+模塊名
version 版本號 第一個0表示大版本號,第二個0表示大版本號,第三個0表示大版本號 0.0.1snapshot快照
packaging 打包方式 默認是jar

name 項目的描述名
url 項目的地址
description 項目描述
developers 開發人員信息
licenses 許可證信息

dependencies
dependency

scope 依賴範圍
optional 設置依賴是否可選
exclusion

dependencyManagement 依賴管理 不會被運行

build

plugins 插件列表(指出座標)
parent 對父模塊的繼承
modules 定義多個模塊 一起進行編譯

dependency scope:指定依賴範圍

 --compiler:默認的範圍,編譯測試運行都有效
 --provided:編譯測試時有效
 --runtime:測試和運行時有效
 --test:測試時有效
 --system:與本機系統相關聯,可移植性差
 --import:導入的範圍,只在dependencyManagement中使用,表示從其他的pom中導入dependency的配置

依賴具有傳遞性所以如果需要去除不需要的依賴則

<exclusions>
<groupId>項目ID</groupId>
<artifactID>項目名+模塊名</artifactID>
</exclusions>

依賴衝突的解決

1.短路優先:

A->B->X(v1.0),A->C->D->X(v2.0)
A-->X(v1.0)

2.聲明順序:

A->B->X(v1.0),A->C->X(v2.0),A-pom.xml: ... <dep C> <dep B> ... 
A-->X(v2.0)
路徑長度相同時,哪個dependency先在pom.xml聲明,哪個就優先

繼承

1.應用場景:組件聚合時,多個組件使用相同的依賴導致聚合後出現重複,使用一個父組件定義該依賴,然後有需要的組件繼承該組件,聚合時就不會重複.
2.父組件定義依賴
在父組件–>dependencyManager–>dependencies下定義dependency
注意,dependencyManager下定義的dependency,該組件不依賴
3.繼承父組件
parent標籤下引用父組件的座標
創建dependency引用,只有groupIdartifactId子元素
繼承 子pom.xml的寫法,先

<parent>
<groupId>項目ID</groupId>
...
...
<parent>

聚合(將多個模塊聚合)
1.創建聚合項目 proj-aggreation
2.packaging爲pom
3.使用modules定義要聚合的模塊

<modules>
<module>../proj-m1</module>
<module>../proj-m2</module>
</modules>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章