maven之聚合繼承
阿新 • • 發佈:2020-09-10
聚合
[多模組Maven專案]
當專案以多模組的形式構建的時候,需要每個依賴模組單獨編譯,而聚合即實現統一編譯. 目的是方便快速構建
<packaging>pom</packaging> <modules> <module>account-persist</module> <module>account-service</module> <module>account-core</module> <module>account-utils</module> <module>account-web</module> </modules>
目錄結構
----pom.xml // parent pom 用於聚合構建
----account-core // 模組
--- pom.xml
--- src
----account-service // 模組
--- pom.xml
--- src
* 聚合模組並不一定是父子關係 可以平級關係聚合; 引用方式<module>../../a</module>以相對路徑查詢關聯模組
繼承
多模組專案pom中包含很多配置資訊是重複的,後續變更修改的時候,改動較大
通過繼承的方式來實現統一管理可繼承的屬性; 目的時消除重複配置
groupId : 專案組ID version: 專案版本 desription: 專案描述 organization: 組織資訊 inceptionYear: 創始年份 url: 專案url地址 developers: 開發著資訊 contributors: 貢獻者資訊 distributionManagement: 部署釋出資訊 issueManagement: 缺陷跟蹤系統資訊 ciManagement: 持續整合系統資訊 scm: 版本控制系統資訊 mailingLists: 郵件列表資訊 properties: 自定義maven屬性 dependencies: 依賴配置 dependencyManagement: 專案依賴管理配置 repositories: 倉庫位置 build: 配置原始碼目錄、輸出目錄、外掛配置、外掛管理配置 reporting: site報告輸出目錄配置、報告外掛配置
版本控制
- 如果所有依賴包在parent中申明依賴,則無需依賴任何依賴的工具包也會繼承依賴;這是不合理的
- 通過 dependencyManagement 申明依賴,繼承後並不會真實引入依賴,而定義依賴(不申明版本)會繼承dependencyManagement申明的版本號
- dependencyManagement 方便統一管理依賴的版本
- 除繼承外,還可以通過import來依賴依賴管理 type: pom
- 外掛管理與依賴包管理相同 , 外掛管理 [
]
<properties>
<springframework.version>2.5.6</springframework.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>xx</gropuId>
<artifactId>dd</artifactId>
<version>${springframework.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>xx</gropuId>
<artifactId>dd</artifactId>
<version>1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugin>
xxxx
</plugin>
</pluginManagement>
</build>