maven聚合与继承笔记

maven聚合

聚合的目的是为了快速构建项目,当我们有几个maven模块,想要一次性构建,而不是到每个模块下面去执行maven命令,这时候就需要使用maven聚合(或者称为多模块)。

使用聚合的时候,我们需要新建一个maven项目,由它来控制构建其他的项目,其pom.xml配置与其他普通maven项目的区别主要在以下两个地方:

  1. 打包类型(packaging)必须为pom
  2. 需要在其中添加modules标签,在其中使用module标签包括需要同时构建的maven模块的名称路径,路径为相对于此pom.xml文件的路径(如果与pom.xml文件同级则直接写项目名,如果在上一级则写../项目名)。

这样当我们在此项目下执行构建的时候,就会同时构建其中配置的项目。

下面举一个配置文件的例子:

<project ......>
  <groupId>XXX.XXX</groupId>
  <artifactId>XXX</artifactId>
  <version>1.0</version>
  <packaging>pom</packaging>
  <modules>
    <module>XX1</module>
    <module>XX2</module>
  </modules>
</project>

maven继承

继承的目的是为了消除重复配置,在项目中可以通过继承父模块的一些配置来简化配置文件,避免配置的重复。

父模块

1. 使用继承的时候,父模块的配置文件(pom.xml)中打包类型必须同聚合一样,为pom。

2. 依赖管理:为了避免子模块继承没有不必要的依赖,所以在父模块中并不引入实际的依赖,而是使用dependencyManagement元素,在其中声明的的dependencies不会在其本身(父模块)中引入依赖,也不会给它的子模块引入依赖。如果在子模块需要使用其中配置的依赖,则可以在子模块中声明,但是不需要声明版本号和依赖范围(已在父模块中声明),这样可以统一不同模块中的依赖版本。

3. 插件管理:同依赖管理,Maven提供了类似的pluginManagement元素来帮助管理插件,使用方式也基本相同。

子模块

子模块如果要继承父模块,则需在其pom.xml中需添加如下配置,同时其groupId和version会省略,直接继承父模块的配置。

<parent>
    <groupId>XXX.XXX</groupId>
    <artifactId>XX</artifactId>
    <version></version>
    <relativePath>XX/XX/pom.xml</relativePath>
</parent>

其中relativePath为父项目的pom.xml路径(如果没有配置此项,则默认为../pom.xml,即上级目录下的pom.xml),构建时会先根据relativePath查找,如果找不到,则会再从本地仓库查找。

注:maven聚合和继承可以同时使用。

时间: 2024-08-17 11:57:30

maven聚合与继承笔记的相关文章

maven聚合与继承

注意:聚合或继承的父工程必须打包为pom 定义: 聚合:将多个子模块聚合到一个父工程中(仅包含一个pom.xml) 继承:多个子模块可以继承自一个父工程(仅包含一个pom.xml) 作用: 聚合:方便统一管理,统一对父工程使用maven命令,所有子模块也会执行 继承:方便所有模块jar包版本的管理 相关代码: 聚合: <modules> <module>../user-dao</module> <module>../user-service</modu

6.Maven聚合和继承,相关案例配置

 1有时候一个项目中有很多个模块,要想各个模块之间影响较小,可以将每个模块拿出来作为一个项目模块,对每个项目模块进行独立的开发. 2在这些过程中会遇到关于聚合和继承的问题. 3何为聚合? A如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合,也就是说当我们点击一个pom的时候,同时运行多个项目模块.这时候要用到以下的标签,将各个项目模块整合在一起. <modules> <module>-</module> </modules> 4何为继承

maven聚合和继承

上一篇文章学习了maven的依赖关系,并且使用maven和hibernate结合起来实现了一个简单的demo,可以看出使用maven来管理项目还是很方便的,再也不用手动的找需要的jar文件了,只需要手动的配置即可,可是大家有没有发现一个问题. 上一篇我们创建了两个工程,"user-core","user-dao",但是在编译打包的时候是分别进行操作的,那么如果我有很多工程,每个工程单独来进行编译打包等操作是很麻烦的,不过可以使用maven的聚合技术进行简单的配置就可

Maven - 聚合与继承

1.聚合(aggregator) 所谓聚合,顾名思义.就是把多个模块或项目聚合到一起. 我们能够建立一个专门负责聚合工作的Maven project -  aggregator. 建立该project的时候.我们要注意下面几点: 1.该aggregator本身也做为一个Maven项目,它必须有自己的POM 2.它的打包方式必须为: packaging 3.引入了新的元素:modules---module 4.版本号:聚合模块的版本号和被聚合模块版本号一致 5.relative path:每一个m

《Maven实战》笔记-5-pom聚合和继承

一.聚合 假设有两个模块:account-email和account-persist: 能够使用一条命令就能构建上述两个模块,需要创建一个额外的模块:account-aggregator: 通过account-aggregator构建整个项目的所有模块,而该模块本身也是Maven项目,有自己的Pom文件: 注意聚合模块account-aggregator打包方式packaging的值必须为pom,如下: 注意,聚合模块与其他模块的目录结构一般是父子关系,如上述pom所示.不过也不是必须的,这是要

Maven学习笔记(三):Maven的聚合和继承

Maven的聚合其实就是把各个项目拷贝到一个项目里,便于统一构建(这种是父子目录结构构件,个人喜欢这种,平行结构不喜欢),实现聚合的方式为: -- 新建一个普通的Maven项目,只保留pom文件,其他的目录结构都删除 -- 配置新建项目的pom文件: 1 <project ...> 2 <modelVersion>4.0.0</modelVersion> 3 <groupId>XXXX</groupId> 4 <artifactId>

Maven学习笔记(七):聚合与继承

软件设计人员往往会采用各种方式对软件划分模块,以得到更清晰的设计及更高的重用性.当把Maven应用到实际项目中的时候,也需要将项目分成不同模块.Maven的聚合特性能够把项目的各个模块聚合在一起构建,而Maven的继承特性则能帮助抽取各模块相同的依赖和插件等配置,在简化POM的同时,还能促进各个模块配置的一致性. <maven实战>一书实现了两个模块account-email和account-persist用以实现一个用户注册的项目. 在本文中,也使用这个例子来讲述聚合与继承. 聚合:  由于

maven学习笔记四(聚合和继承)

聚合 现在假如,我创建了3个maven项目, user-core.2.user-log,3.user-service 这个时候,假如我们要打包这些项目,要一个一个来,会很麻烦.那么我们有没有更好的办法通过只打包一个,来让其他都打包呢?ma 这个时候,我们就可以利用maven的聚合特性来实现.新建一个空的maven项目.如下图: 创建完毕后,打开pom.xml编写如下的配置: 这个时候,我们只需要执行这一个空的maven项目即完成了所有的项目的打包. 继承 现在假如,我创建了3个maven项目,

Maven实战读书笔记(五):聚合与继承

Maven的聚合特性能够把项目的各个模块聚合在一起构建,而继承特性则能够帮助抽取各模块相同的依赖和插件等配置,在简化POM的同时,还能促进各个模块配置的一致性. 5.1 聚合 Maven聚合也称多模块,能够一次构建多个模块.聚合模块本身是一个Maven项目,所以也有自己的POM文件,该POM文件的packaging为pom,并且含有<modules>和<module>元素,如: <project xmlns="http://maven.apache.org/POM/