您好,登錄后才能下訂單哦!
使用Maven多模塊怎么創(chuàng)建父子關(guān)系?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
Maven多模塊(pom)
1.1 父模塊創(chuàng)建
先創(chuàng)建個(gè)簡(jiǎn)單的空的Maven Project作為父項(xiàng)目
1.2 子模塊創(chuàng)建
重新創(chuàng)建一個(gè)Maven Project作為子項(xiàng)目
1.3 父子模塊(繼承關(guān)系)
注意:此時(shí)父子模塊為兩個(gè)獨(dú)立的項(xiàng)目。
步驟1:子項(xiàng)目中加入<parent>
節(jié)點(diǎn),傳入父項(xiàng)目完整坐標(biāo)。
步驟2:將子項(xiàng)目中的依賴都注釋掉。
注意:此時(shí)子項(xiàng)目中的沒有了Maven Dependencies。
步驟3:將子項(xiàng)目注釋的依賴添加到父項(xiàng)目中。
注意:此時(shí)子項(xiàng)目中的依賴又添加回來(lái)了。
這種直接在父工程中加入<dependencies>
的方式,讓子工程可以直接復(fù)用依賴,但是缺點(diǎn)是所有的子項(xiàng)目無(wú)條件繼承父工程所有依賴,所以如果要在父工程中添加依賴只能針對(duì)非常通用的依賴。
在父項(xiàng)目中再添加一個(gè)依賴。
子項(xiàng)目同時(shí)也繼承了新添加的依賴。
那如果不想無(wú)條件繼承父工程的所有依賴,而想讓子項(xiàng)目自行選擇需要的依賴又該如何做呢?
1.4 dependencyManagement
在父項(xiàng)目中用<dependencies>
節(jié)點(diǎn)包裹<dependencies>
節(jié)點(diǎn),并且添加的是完整的依賴坐標(biāo)(gav)。
此時(shí)子項(xiàng)目中的Maven Dependencies又會(huì)消失,說(shuō)明添加<dependencies>
節(jié)點(diǎn)后,它并不負(fù)責(zé)相關(guān)依賴的下載。
子項(xiàng)目加入相應(yīng)同樣依賴,注意不要加version
(version
繼承自父項(xiàng)目),需要什么樣的依賴就聲明什么。
特別注意,如果父項(xiàng)目提供了groupid
和version
,則刪除子項(xiàng)目坐標(biāo)中的groupid
和version
,直接繼承父項(xiàng)目相關(guān)坐標(biāo)。
dependencyManagement
的作用:依賴版本管理器
本身并不下載任何依賴,只是管理依賴的版本。依賴的下載依然需要單獨(dú)的<dependencies>
(不加dependencyManagement
,額外寫一個(gè))去做
如果<dependencies>
中的<dependency>
沒有聲明版本號(hào)(version
),maven會(huì)去尋找有無(wú)對(duì)應(yīng)的dependencyManagement
,當(dāng)前工程沒有就會(huì)向上找父工程。如果找到就以dependencyManagement
中對(duì)應(yīng)依賴聲明的version
為準(zhǔn),否則報(bào)錯(cuò)version is missing。
看完上述內(nèi)容,你們掌握使用Maven多模塊怎么創(chuàng)建父子關(guān)系的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。