聚合ui
<modules> <!--相對位置--> <module>子模塊目錄<module> </modules>
繼承url
父模塊--簡單的POM文件就能夠 ,有 module 說明 子模塊spa
子模塊:插件
<parent> <groupId>父模塊groupId</groupId> <artifactId>父模塊artifactId</artifactId> <version>父模塊的版本/version> <!--父模塊POM文件位置,若是找不到,從本地倉庫查找,默認值爲 ../pom.xml--> <relativePath>父模塊POM文件位置</relativePath> <parent> <!--默認從父模塊繼承 groupId,version ,也能夠自定義-> <artifactId>子模塊artifactId</artifactId> <name>子模塊名稱</name>
能夠繼承的POM元素版本控制
pom元素 | 含義 |
---|---|
groupId | 項目組ID,項目座標的核心元素 |
version | 項目版本,項目座標的核心元素 |
description | 項目的描述信息 |
organization | 項目的組織信息 |
inceptionYear | 項目的創始年份 |
url | 項目的URL地址 |
developers | 項目的開發者信息 |
contributors | 項目的貢獻者信息 |
distributionManagement | 項目的部署配置 |
issueManagement | 項目的缺陷跟蹤系統信息 |
ciManagement | 項目的持續集成系統信息 |
scm | 項目的版本控制系統的信息 |
mailingLists | 項目的郵件列表信息 |
properties | 自定義的Maven屬性 |
dependencies | 項目的依賴配置 |
dependencyManagement | 項目的依賴管理配置 |
repositories | 項目的倉庫配置 |
build | 包括項目的源碼目錄配置,輸出目錄配置,插件配置,插件管理配置 |
reporting | 包括項目報告的輸出目錄配置,報告插件配置 |
依賴管理code
<!--dependencyManagement聲明的依賴父子模塊都不會引入,但子模塊繼承父模塊的依賴配置,又能保障子模塊依賴靈活性--> <dependencyManagement> <dependencies> <dependency> .... </dependency> </dependencies> </dependencyManagement>
插件管理xml
<!--pluginManagement聲明的插件父子模塊都不會引入,但子模塊繼承父模塊的插件配置,又能保障子模塊插件靈活性--> <build> <pluginManagement> <plugins> <plugin> .... </plugin> </plugins> <pluginManagement> </build>
反應堆:在一個多模塊的項目中,反應堆(Reactor)是指全部模塊組成的一個構建結構。對於單模塊的項目,反應堆就是模塊自己,但對於多模塊項目,反應堆就是包含了各模塊直接繼承和依賴的關係,從而可以計算出合理的模塊構建順序繼承
大概順序:Maven按順序讀取POM,若是POM沒有依賴,就構建該模塊,不然就先構建其餘依賴模塊,若是該模塊還依賴其餘模塊,咋進一步先構建依賴的依賴。ip
模塊間的依賴關係會將反應堆構成一個有向非循環圖,若是出現循環,項目構建失敗。ci
裁剪反應堆--若是僅僅構建完整反應堆中的某些模塊時,用戶須要裁剪反應堆
命令 | 含義 |
---|---|
-am | --also-make 同時構建所列模塊的依賴模塊 |
-amd | --also-make-dependents 同時構建依賴於所列模塊的模塊 |
-pl | --projects<arg> 構建指定的模塊,模塊間用逗號分隔 |
-rf | -resume-from<arg> 從指定的模塊回覆反應堆 |