聚合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> 从指定的模块回复反应堆 |