Maven中聚合和继承的区别

Maven中聚合和继承的区别

一、聚合

        1、我们在开发过程中,创建了2个以上的模块,每个模块都是一个独立的maven project,在开始的时候我们可以独立的编译和测试运行每个模块,但是随着项目的不断变大和复杂化,我们期望能够使用简单的操作来完成编译等工作,这时Maven给出了聚合的配置方式。

        2、所谓聚合,顾名思义,就是把多个模块或项目聚合到一起,我们可以建立一个专门负责聚合工作的Maven 工程。

        3、注意以下特点:

  • 1. 聚合模块本身也做为一个Maven项目,它必须有自己的POM
  • 2. 它的打包方式必须为: pom
  • 3. 引入了新的元素:modules---module
  • 4. 版本:聚合模块的版本和被聚合模块版本一致
  • 5. 相对目录:每个module的值都是一个当前POM的相对目录
  • 6. 目录名称:为了方便的快速定位内容,模块所处的目录应当与其artifactId一致(Maven约定而不是硬性要求),总之,模块所处的目录必须和<module>模块所处的目录</module>相一致。
  • 7. 习惯约定:为了方便构建,通常将聚合模块放在项目目录层的最顶层,其它聚合模块作为子目录存在。这样当我们打开项目的时候,第一个看到的就是聚合模块的POM
  • 8. 聚合模块减少的内容:聚合模块的内容仅仅是一个pom.xml文件,它不包含src/main/Java、src/test/java等目录,因为它只是用来帮助其它模块构建的工具,本身并没有实质的内容。
  • 9. 聚合模块和子模块的目录:他们可以是父子类,也可以是平行结构,当然如果使用平行结构,那么聚合模块的POM也需要做出相应的更改。 (父子类更方便,便于统一管理jar)

二、继承

        1、我们在项目开发的过程中,可能多个模块独立开发,但是多个模块可能依赖相同的元素,比如说每个模块都需要Junit,使用spring的时候,其核心jar也必须都被引入,在编译的时候,maven-compiler-plugin插件也要被引入。这时我们采用继承,就不用在每个子模块分别定义了。

        2、配置继承:

  • 1. 说到继承肯定是一个父子结构,那么我们在父工程中来创建一个parent project
  • 2. <packaging>: 作为父模块的POM,其打包类型也必须为POM
  • 3. 结构:父模块只是为了帮助我们消除重复,所以它也不需要src/main/java、src/test/java等目录
  • 4. 新的元素:<parent> , 它是被用在子模块中
  • 5. <parent>元素的属性:<relativePath>: 表示父模块POM的相 对路径,在构建的时候,Maven会先根据relativePath检查父POM,如果找不到,再从本地仓库查找
  • 6. relativePath的默认值: ../pom.xml
  • 7. 子模块省略groupIdversion: 使用了继承的子模块中可以不声明groupId和version, 子模块将隐式的继承父模块的这两个元素。

三、 聚合与继承的区别

        1、聚合和继承通常是结合使用的,但是其作用是不同的。聚合是将多个模块的工程汇聚到一起,而继承则是指明某个模块工程要继承另一个模块功能

请看这里:如何理解Maven的聚合和继承​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值