一文帶你搞懂Maven的繼承與聚合
一、繼承
我們已經(jīng)完成了使用聚合工程去管理項目,聚合工程進(jìn)行某一個構(gòu)建操作,其他被其管理的項目也會 執(zhí)行相同的構(gòu)建操作。那么接下來,我們再來分析下,多模塊開發(fā)存在的另外一個問題,重復(fù)配置的問題,我們先來看張圖:
■ spring-webmvc、spring-jdbc在三個項目模塊中都有出現(xiàn),這樣就出現(xiàn)了重復(fù)的內(nèi)容
■ spring-test只在ssm_crm和ssm_goods中出現(xiàn),而在ssm_order中沒有,這里是部分重復(fù)的內(nèi)容
■ 我們使用的spring版本目前是5.2.10.RELEASE ,假如后期要想升級spring版本,所有跟Spring相關(guān)jar包都得被修改,涉及到的項目越多,維護(hù)成本越高
繼承概念
繼承描述的是兩個工程間的關(guān)系,與java中的繼承相似,子工程可以繼承父工程中的配置信息,常用于依賴關(guān)系的繼承
作用
- 簡化配置
- 減少版本沖突
二、繼承關(guān)系實施步驟
1、創(chuàng)建Maven模塊,設(shè)置打包類型為pom
<packageing>pom<packageing>
注意事項:建議父工程打包方式設(shè)置為pom
2、在父工程的pom文件中配置依賴關(guān)系(子工程將沿用父工程中的依賴關(guān)系)
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.10.RELEASE</version> </dependency> ... </dependencies>
3、在配置子工程中可選的依賴關(guān)系
<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.16</version> </dependency> ... </dependencies> </dependencyManagement>
4、在子工程中配置當(dāng)前工程所繼承的父工程
<!--配置該工程的父工程--> <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、在子工程中配置使用父工程中可選依賴的坐標(biāo)
<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> </dependencies>
注意事項:
子工程中使用父工程中的可選依賴時,僅需要提供群組id和項目id,無需提供版本,版本由父工程統(tǒng)一提供,避免版本沖突,子工程中還可以定義父工程中沒有定義的依賴關(guān)系。
三、聚合與繼承的區(qū)別
作用
聚合用于快速構(gòu)建項目
繼承用于快速配置
相同點
聚合與繼承的pom.xml文件打包方式為pom,可以將兩種關(guān)系制作到同一個pom文件中
聚合與繼承均屬于設(shè)計型模塊,并無實際的模塊內(nèi)容
不同點
聚合是在當(dāng)前模塊中配置關(guān)系,聚合可以感知到參與聚合的模塊有哪些
繼承是在子模塊中配置關(guān)系,父模塊無法感知哪些子模塊繼承了自己
以上就是一文帶你搞懂Maven的繼承與聚合的詳細(xì)內(nèi)容,更多關(guān)于Maven繼承 聚合的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring中利用SchedulingConfigurer實現(xiàn)動態(tài)定時任務(wù)配置的示例
定時任務(wù)是一項至關(guān)重要的功能,它們使得我們能夠按照預(yù)定的時間執(zhí)行特定的任務(wù),本文主要介紹了Spring中利用SchedulingConfigurer實現(xiàn)動態(tài)定時任務(wù)配置的示例,感興趣的可以了解一下2024-05-05淺談緩沖字符流 BufferedReader BufferedWriter用法
這篇文章主要介紹了緩沖字符流 BufferedReader BufferedWriter的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07使用JDBC4.0操作XML類型的字段(保存獲取xml數(shù)據(jù))的方法
jdbc4.0最重要的特征是支持xml數(shù)據(jù)類型,接下來通過本文重點給大家介紹如何使用jdbc4.0操作xml類型的字段,對jdbc4.0 xml相關(guān)知識感興趣的朋友一起看下吧2016-08-08做java這么久了居然還不知道JSON的使用(一文帶你了解)
這篇文章主要介紹了做java這么久了居然還不知道JSON的使用(一文帶你了解),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07