這篇文章主要介紹了Maven多模塊之父子關係的創建,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一起學習學習吧
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。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。