Maven進(jìn)階


分模塊開(kāi)發(fā)的意義
- 我們前面的開(kāi)發(fā)都只有一個(gè)模塊
![]()
分模塊開(kāi)發(fā)與設(shè)計(jì)

在上面ssm的代碼中,我們的所有代碼都是寫(xiě)在一個(gè)模塊中的。我們現(xiàn)在將domain和dao部分,分離出來(lái)作為獨(dú)立的2給模塊


- 一個(gè)注意點(diǎn)
在我們拆分或者是寫(xiě)一個(gè)模塊時(shí),頁(yè)需要去導(dǎo)入這個(gè)模塊所需要的依賴
![]()
我們這是做完后再拆解模塊,在實(shí)際開(kāi)發(fā)中就是直接創(chuàng)建模塊進(jìn)行開(kāi)發(fā)的
![]()
![]()
我們使用install只能將模塊加載到我們自己的本地倉(cāng)庫(kù)中,但是團(tuán)隊(duì)中其他人想要獲取我的模塊內(nèi)容該怎樣獲取呢?
這個(gè)我們可以通過(guò)私服來(lái)解決,這個(gè)在最后一節(jié)課中會(huì)講到
第二部分:依賴管理

依賴傳遞



- 依賴沖突
![]()
![]()



可選依賴與排除依賴
我們將依賴標(biāo)記為可選以來(lái),在被被人引用的時(shí)候,可以避免依賴沖突,但是不影響自己訪問(wèn)


所以我們無(wú)法進(jìn)行可選依賴,但是我們可以進(jìn)行排除依賴達(dá)成這個(gè)目的



在開(kāi)發(fā)中如果是使用第三方,我們一般使用排除依賴,如果是別人使用我們的,一般使用可選依賴

第三部分:繼承與聚合
現(xiàn)在我們已經(jīng)由單模塊開(kāi)發(fā)變成了多模塊開(kāi)發(fā),但是多模塊開(kāi)發(fā)會(huì)帶來(lái)一些問(wèn)題

聚合

聚合工程的編寫(xiě)




繼承

聚合和繼承通常是一起編寫(xiě)的。我們將聚合工程作為我們的父工程。我們將子模塊都會(huì)使用的依賴寫(xiě)到父工程的pom文件中。在子模塊的pom文件中聲明該模塊繼承自哪個(gè)模塊
當(dāng)我們的版本要做升級(jí)的時(shí)候,我們只需要升級(jí)父類模塊的依賴版本,子類模塊的該依賴的版本將都進(jìn)行了升級(jí)
- 1.將公共依賴抽取到父模塊中
- 2.定義依賴管理(當(dāng)一個(gè)依賴并不是所有模塊都要使用,可以在父模塊將該依賴設(shè)置成依賴管理,在子模塊在聲明該模塊才會(huì)被子模塊繼承使用)
- 總結(jié)步驟
![]()
![]()
![]()



maven在打包成war的時(shí)候最起碼需要有web.xml文件**
屬性


這樣我們可以統(tǒng)一控制我們依賴的版本
配置文件加載屬性
解決問(wèn)題,當(dāng)打war包的時(shí)候,如果沒(méi)有web.xml文件的時(shí)候不要報(bào)錯(cuò)?

解決步驟





maven的其他屬性


實(shí)際上就是我們將屬性文件中的值放在到maven倉(cāng)庫(kù)中,然后我們的屬性文件到maven中讀取對(duì)應(yīng)的值
版本管理


第五部分:多環(huán)境配置與應(yīng)用

多環(huán)境開(kāi)發(fā)


如果我們?cè)诟鼡Q環(huán)境的時(shí)候需要更改pom.xml中的默認(rèn)環(huán)境配置,這樣就太麻煩了。所以我們通過(guò)執(zhí)行附帶環(huán)境id的maven指令替代,
這樣就不用更改默認(rèn)環(huán)境配置了



- 對(duì)執(zhí)行命令的解釋
![]()
經(jīng)驗(yàn):我們?cè)谛薷呐渲煤笮枰獙⑺麄冎匦耰nstall到倉(cāng)庫(kù)中
跳過(guò)測(cè)試
測(cè)試過(guò)程可以保證我們程序打包時(shí)候是正確的。但是有一些特殊的情況我們希望不要給我們的程序進(jìn)行測(cè)試

跳過(guò)測(cè)試的方法
- 只能跳過(guò)全部測(cè)試
![]()
- 可以跳過(guò)部分測(cè)試
在pom.xml中配置跳過(guò)測(cè)試(排除掉一些東西)。maven中測(cè)試功能是由插件提供的
![]()
![]()
- 使用命令跳過(guò)測(cè)試(好像也只能跳過(guò)全部的測(cè)試)
![]()
![]()
![]()
第六部分:私服

私服簡(jiǎn)介與安裝



- 使用
![]()
![]()




成功設(shè)置了密碼888888
- 總結(jié)
![]()
私服倉(cāng)庫(kù)的分類



我們現(xiàn)在希望,在上傳的時(shí)候需要指定倉(cāng)庫(kù),但是在下載的時(shí)候能不能不需要指定在哪個(gè)倉(cāng)庫(kù)里面下載呢?


本地倉(cāng)庫(kù)訪問(wèn)私服配置

關(guān)于本地倉(cāng)庫(kù)訪問(wèn)私服的配置在maven的settings.xml里面進(jìn)行配置



倉(cāng)庫(kù)組的地址就是他的url地址
注意:如果我們重新在私服里面創(chuàng)建新的倉(cāng)庫(kù),注意將新創(chuàng)建的倉(cāng)庫(kù)添加到倉(cāng)庫(kù)組中
私服資源上傳和下載



當(dāng)我們?cè)诰酆瞎こ讨袌?zhí)行上傳指令,我們的工程都將執(zhí)行上傳指令。但是如果我們有的模塊沒(méi)有繼承父模塊此時(shí)指令將執(zhí)行出錯(cuò)
- 為什么此時(shí)只有一個(gè)快照倉(cāng)庫(kù)中有我們上傳的資源呢?
![]()
我們發(fā)布的版本會(huì)更新,但是不會(huì)主動(dòng)刪除
我們?cè)鯓优渲梦覀兯椒写韨}(cāng)庫(kù)的資源從阿里云的鏡像中下載呢?

關(guān)于私服的總結(jié)
























浙公網(wǎng)安備 33010602011771號(hào)