項目管理工具——Maven學(xué)習(xí)筆記(十二、Maven聚合和繼承特性)

什么是Maven聚合特性?
能夠把項目的各個模塊聚合在一起構(gòu)建,這種方式就是聚合。不用我們手動依次install各個模塊了,提高工作效率。

現(xiàn)在呢,就把我們之前的【maventest-a】、【maventest-b】、【maventest-c】進行聚合。打開Eclipse,創(chuàng)建新項目【maventest-aggregation】。
打開并編輯【maventest-aggregation】的pom.xml:

  1. 將<package>標(biāo)簽值改為pom,作為聚合項目的容器,則必須pom;
  2. 增加<models>標(biāo)簽,將子項【maventest-a】、【maventest-b】、【maventest-c】依次添加。
    如圖:
Paste_Image.png

保存,并【Run As】→【Maven Build】,輸入命令:clean install

Paste_Image.png

運行之后,它會依次將a、b、c打包安裝到本地倉庫。

Paste_Image.png

這就是聚合了,那么……

什么是Maven的繼承特性呢?
能夠幫助抽取各模塊相同的依賴和插件等配置,在簡化 pom 配置的同時,還能促進各個模塊配置的一致性。

例如,我們的【maventest-a】、【maventest-b】、【maventest-c】項目都在pom引入了junit依賴。這就導(dǎo)致我們項目很冗余。那怎么辦呢?這時就需要用到繼承特性,創(chuàng)建項目父模塊【maventest-parent】。

在【maventest-parent】的pom.xml中添加<dependencyManagement>標(biāo)簽。這個標(biāo)簽在pom.xml常用元素中講到過。

Paste_Image.png

添加好后,就是這樣的:

Paste_Image.png

為了防止以后pom.xml變龐大,版本號不易找到和修改,可以將junit的version的值,單獨提出來到<properties>標(biāo)簽里,并使用EL表達式引用。

Paste_Image.png

然后將<package>值改為pom,作為父模塊這個值必須為pom。又因為是父模塊,一般是不在main和test里寫代碼的,這兩個目錄,都可以刪除。
最后【maventest-parent】的pom.xml:

Paste_Image.png

左側(cè)目錄結(jié)構(gòu):


Paste_Image.png

父模塊完成,打開子模塊。以【maventest-a】為例:

  1. 在它的pom中增加<parent>標(biāo)簽并把【maventest-parent】的坐標(biāo)添加進去。
  2. 將junit依賴的版本號和依賴范圍刪掉,保留<groupId>和<artifactId>。這是因為,父模塊雖然引入了junit,但是還需要子模塊聲明<groupId>和<artifactId>才可以使用。
    如圖:
Paste_Image.png
Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 前言什么是 POMQuick Overview POM 常用元素 pom.xml 完整注釋 參考 0 前言 什么是...
    阿父閱讀 12,655評論 1 36
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,951評論 6 342
  • 好久沒有更新了,在這里給大家說聲抱歉,實在是因為最近加班忙成狗,還有一個原因是我想把《maven實戰(zhàn)》這本書剩下的...
    小煉君閱讀 1,461評論 0 51
  • 我jdk版本是1.7.0_95,在網(wǎng)上查了一下1.7屬于java7maven3.3+版本都支持java7,所以我使...
    liangxifeng833閱讀 1,293評論 0 2