一文帶你搞懂Maven的繼承與聚合
一、繼承
我們已經完成瞭使用聚合工程去管理項目,聚合工程進行某一個構建操作,其他被其管理的項目也會 執行相同的構建操作。那麼接下來,我們再來分析下,多模塊開發存在的另外一個問題,重復配置的問題,我們先來看張圖:
■ spring-webmvc、spring-jdbc在三個項目模塊中都有出現,這樣就出現瞭重復的內容
■ spring-test隻在ssm_crm和ssm_goods中出現,而在ssm_order中沒有,這裡是部分重復的內容
■ 我們使用的spring版本目前是5.2.10.RELEASE ,假如後期要想升級spring版本,所有跟Spring相關jar包都得被修改,涉及到的項目越多,維護成本越高
繼承概念
繼承描述的是兩個工程間的關系,與java中的繼承相似,子工程可以繼承父工程中的配置信息,常用於依賴關系的繼承
作用
- 簡化配置
- 減少版本沖突
二、繼承關系實施步驟
1、創建Maven模塊,設置打包類型為pom
<packageing>pom<packageing>
註意事項:建議父工程打包方式設置為pom
2、在父工程的pom文件中配置依賴關系(子工程將沿用父工程中的依賴關系)
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.10.RELEASE</version> </dependency> ... </dependencies>
3、在配置子工程中可選的依賴關系
<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.16</version> </dependency> ... </dependencies> </dependencyManagement>
4、在子工程中配置當前工程所繼承的父工程
<!--配置該工程的父工程--> <parent> <groupId>com.itheima</groupId> <artifactId>maven_01_parent</artifactId> <version>1.0-RELEASE</version> <!--填寫父工程的pom文件--> <relativePath>../maven_01_parent/pom.xml</relativePath> </parent>
5、在子工程中配置使用父工程中可選依賴的坐標
<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> </dependencies>
註意事項:
子工程中使用父工程中的可選依賴時,僅需要提供群組id和項目id,無需提供版本,版本由父工程統一提供,避免版本沖突,子工程中還可以定義父工程中沒有定義的依賴關系。
三、聚合與繼承的區別
作用
聚合用於快速構建項目
繼承用於快速配置
相同點
聚合與繼承的pom.xml文件打包方式為pom,可以將兩種關系制作到同一個pom文件中
聚合與繼承均屬於設計型模塊,並無實際的模塊內容
不同點
聚合是在當前模塊中配置關系,聚合可以感知到參與聚合的模塊有哪些
繼承是在子模塊中配置關系,父模塊無法感知哪些子模塊繼承瞭自己
以上就是一文帶你搞懂Maven的繼承與聚合的詳細內容,更多關於Maven繼承 聚合的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- SpringBoot的依賴管理配置
- Maven繼承與聚合詳解及作用介紹
- 瞭解Maven的<relativePath/>標簽用法
- Maven依賴管理的用法介紹
- maven依賴版本沒有按照最短路徑原則生效的解決方案