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