一、分模塊設(shè)計(jì)與開發(fā)
分模塊設(shè)計(jì):
將項(xiàng)目按照功能拆分成若干個(gè)子模塊,方便項(xiàng)目的管理維護(hù)、擴(kuò)展,也方便模塊間的相互調(diào)用,資源共享。
注意:分模塊開發(fā)需要先對(duì)模塊功能進(jìn)行設(shè)計(jì),再進(jìn)行編碼。不會(huì)先將工程開發(fā)完畢,然后進(jìn)行拆分。
二、繼承與聚合
1.繼承關(guān)系
- 繼承:描述的是兩個(gè)工程間的關(guān)系,與java中的繼承相似,子工程可以繼承父工程中的配置信息,常見于依賴關(guān)系的繼承。
- 作用:簡化依賴配置、統(tǒng)一管理依賴
- 實(shí)現(xiàn):<parent>...</parent>
Maven中一些常見的打包方式:
- jar:普通模塊打包,springboot項(xiàng)目基本都是jar包(內(nèi)嵌tomcat運(yùn)行)
- war:普通web程序打包,需要部署在外部的tomcat服務(wù)器中運(yùn)行
- pom:父工程或聚合工程,該模塊不寫代碼,僅進(jìn)行依賴管理
2.繼承關(guān)系的實(shí)現(xiàn)
- 創(chuàng)建maven模塊tlias-parent,該工程為父工程,設(shè)置打包方式pom
- 在子工程的pom.xml文件中,配置繼承關(guān)系
- 在父工程中配置各個(gè)工程共有的依賴(子工程會(huì)自動(dòng)繼承父工程的依賴)
注意:
- 在子工程中,配置了繼承關(guān)系之后,坐標(biāo)中的groupId是可以省略的,因?yàn)闀?huì)自動(dòng)繼承父工程的;
- relativePath指定父工程的pom文件的相對(duì)位置(如果不指定,將從本地倉庫/遠(yuǎn)程倉庫查找該工程的);
- 若父子工程都配置了同一個(gè)依賴的不同版本,以子工程的為準(zhǔn)。
====分模塊設(shè)計(jì)之后,啟動(dòng)程序,仍然可以正常運(yùn)行====
3.版本鎖定
1)父工程統(tǒng)一管理版本號(hào)
在maven中,可以在父工程的pom文件中通過<dependencyManagement>來統(tǒng)一管理依賴版本。
子工程引入依賴時(shí),無需指定<version>版本號(hào),父工程統(tǒng)一管理,變更以來版本,只需要在父工程中統(tǒng)一變更。
2)自定義屬性/引用屬性
在<properties>標(biāo)簽里直接定義版本標(biāo)簽集中管理:
<lombok.version>1.18.20</lombok.version>
<jjwt.version>0.9.0</jjwt.version>
在后面的統(tǒng)一版本管理標(biāo)簽里只需要將<version>標(biāo)簽里面改為:
<version>${jjwt.version}</version>引用屬性即可?
注意:web開發(fā)的起步依賴已經(jīng)在父工程指定為2.7.5,子工程只用引用即可,無需指定版本。
Q:<dependencyManagement>與<dependency>的區(qū)別?
- <dependency>是直接依賴,在父工程配置了依賴,子工程會(huì)直接繼承下來;
- <dependencyManagement>是統(tǒng)一管理依賴版本,不會(huì)直接依賴,還需要在子工程中引入所需依賴(無需指定版本)
4.聚合
聚合:將多個(gè)模塊組成一個(gè)整體,同時(shí)進(jìn)行項(xiàng)目的構(gòu)建
- 增加<modules>標(biāo)簽,指定需要聚合的模塊即可
<module>../tlias-utils<module>
聚合之后就在可以直接在聚合模塊tlias-parent繼續(xù)操作即可,不需要逐一部署每一個(gè)模塊了。
聚合工程:一個(gè)不具有業(yè)務(wù)功能的”空“工程(有且僅有一個(gè)pom文件)===tlias-parent(父工程、聚合工程)
作用:快速構(gòu)建項(xiàng)目(無需根據(jù)依賴關(guān)系手動(dòng)構(gòu)建,直接在聚合工程上構(gòu)建即可)
5.總結(jié)
- 作用:
- 聚合用于快速構(gòu)建項(xiàng)目
- 繼承用于簡化依賴配置,統(tǒng)一管理依賴
- 相同點(diǎn):
- 聚合與繼承的pom.xml文件打包方式均為pom,可以將兩種關(guān)系制作到同一個(gè)pom文件中===tlias-parent(父工程、聚合工程)
- 聚合與繼承均屬于設(shè)計(jì)型模塊,并無實(shí)際的模塊內(nèi)容
- 不同點(diǎn):
- 聚合是在聚合工程中配置關(guān)系,聚合可以感知到參與聚合的模塊有哪些
- 繼承是在子模塊中配置關(guān)系,父模塊無法感知哪些模塊繼承了自己
三、私服
1.介紹
私服是一種特殊的遠(yuǎn)程倉庫,它是架設(shè)在局域網(wǎng)內(nèi)的倉庫服務(wù),用來代理位于外部的中央倉庫,用于解決團(tuán)隊(duì)內(nèi)部的資源共享與資源同步問題。一個(gè)項(xiàng)目/公司,只需要一臺(tái)私服即可,無需自己搭建,會(huì)使用即可。
2.資源上傳與下載
私服中的三個(gè)倉庫:文章來源:http://www.zghlxwxcb.cn/news/detail-818795.html
- release:發(fā)行的穩(wěn)定版本
- snapshot:開發(fā)階段
- central:中央倉庫
私服配置會(huì)使用即可,步驟固定。文章來源地址http://www.zghlxwxcb.cn/news/detail-818795.html
到了這里,關(guān)于黑馬程序員JavaWeb開發(fā)|Maven高級(jí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!