Maven 聚合和继承

聚合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> 从指定的模块回复反应堆
相关文章
相关标签/搜索