聚合与继承(七)

聚合与继承(七)

聚合:多个模块一起构建,聚合模块的pom配置的packaging属性必须为pom,快速构建项目

文件中包含:

<modules>
  <module>account-email</module>
  <module>account-presist</module>
  <module>account-captcha</module>
  <module>account-service</module>
  <module>account-web</module>
</modules>

<module>account-web</module>:属性的值,是被聚合的模块的目录名称,此处是相对当前pom的路径,例如../account-web

继承:子模块的pom文件继承父模块的pom文件配置,消除重复配置

<parent>
    <artifactId>maven</artifactId>
    <groupId>a.b.c</groupId>
    <version>1.0.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>

<relativePath>../pom.xml</relativePath>:这个属性指定继承的父pom文件的位置,相对位置,默认为../pom.xml,当解析pom文件的时候,根据此属性查找父pom文件,如果没有找到,在本地仓库找,如果还是找不到就会报错。

pom继承体系中可以被继承的元素:

groupId:项目组ID,项目坐标的核心元素

version:项目版本,项目坐标的核心元素

description:项目的描述信息

organization:项目的组织信息

inceptionYear:项目的创始年份

url:项目的url地址

developers:项目的开发者信息

contributors:项目的贡献者

distributionManagement:项目的部署配置

issueManagement:项目的缺陷跟踪系统信息

ciManagement:项目的持续集成系统信息

scm:项目的版本控制系统信息

mailingLists:项目的邮件列表信息

properties:自定义的maven属性

dependencies:项目的依赖配置,父模块的声明,会被子模块继承,并自动引入依赖,无论是否使用。

dependencyManagement:项目的依赖管理配置,该模块既能让子模块继承父模块的配置,又能保证子模块使用依赖的灵活性,在dependencyManagement元素下的依赖声明,不会引入实际的依赖,不过他能约束dependencies下的依赖使用。

该元素dependencyManagement的配置如果要重用,有三种方式,1.粘贴配置 2.maven继承 3.import导入

import导入实例:

<dependency>
  <groupId></groupId>
  <artifactId></artifactId>
  <version></version>
  <type>pom</type>
  <scope>import</scope>
</dependency>

repositories:项目的仓库配置

build:包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等。

reporting:包括项目的报告输出目录配置、报告插件配置等。

pluginManagement:该元素帮助管理插件,必须在build标签下,在该元素下配置的插件依赖不会造成插件的实际调用行为,当pom中真正配置了plugin元素,并且groupId和artifactId与pluginManagement中配置的插件匹配时,pluginManagement的配置才会影响实际的插件行为,如果子模块插件行为个性化定制,会覆盖掉父模块已经定制过的相同属性的配置。

反应堆:在一个多模块的maven项目中,反应堆是指多个模块组成的一个构建结构,对于单模块项目,反应堆就是项目本身,对于多模块项目,反应堆就包含了各模块之间继承与依赖的关系,从而能够自动计算出合理的模块构建顺序。

1.反应堆的构建顺序:根据pom文件配置顺序读取,然后解析pom分析每个模块的依赖、继承关系,如果没有则构建、如果有关联关系,先构建依赖、继承的模块,如果依赖、继承还有依赖、继承则递归构建。

2.裁剪反应堆:我们可以构建整个项目、单个模块、指定模块、反应堆中的某部分,我们可以裁剪反应堆。

maven提供很多的命令行选项支持裁剪反应堆,mvn -h可以看到这些选项

-am:同时构建所列模块的依赖模块 -> mvn clean install -pl account-email -am,带依赖模块

-amd:同时构建依赖于所列模块的模块mvn clean install -pl account-email -amd,同时构建依赖于所列模块(account-email模块)的模块

-pl:构建指定的模块,模块间用逗号","分割mvn clean install -pl account-email,account-service,不带依赖模块

-rf:从指定的模块开始构建

mvn clean install -rf account-email,从完整反应堆的构建顺序的基础上从指定的模块开始构建。

mvn clean install -pl account-parent -am -rf account-email,在-pl -am 或者 -pl -amd的基础上可以使用-rf,可以对裁剪后的反应堆在进行裁剪。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值