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
引用,只有groupId
和artifactId
子元素
繼承 子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>