maven中的聚合与继承
2013-09-24 11:12
337 查看
maven中的聚合和继承是2个不同的概念,虽然经常在一个父模块里同时完成这2个功能
一、聚合
聚合的作用是把子项目的构建过程串到一起:
或者
前者是对应平行结构的,后者是对应树形结构的
在平行结构的情况下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/ae974565be1418b81a67809b9bb0132e.png)
pom所在的当前目录是D:\example\project-aggregator,所以需要配置为../project-moduleA,才能找到D:\example\project-moduleA
在树形结构的情况下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/9285595f6cad81194cb6862c55b548a6.png)
pom所在的当前目录是D:\example\project-aggregator,所以可以直接配置为project-moduleA,即可找到D:\example\project-aggregator\project-moduleA
聚合模块清楚地知道将要聚合哪些子模块,但是子模块对于自己被聚合毫不知情
二、继承
与聚合不同,继承的目的是为了在父模块中进行一些公共配置,以简化子模块的POM文件
或者
前者是对应平行结构的,后者是对应树形结构的
在平行结构的情况下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/ae974565be1418b81a67809b9bb0132e.png)
pom所在的当前目录是D:\example\project-moduleA,所以需要配置为../project-aggregator,才能找到D:\example\project-aggregator\pom.xml
在树形结构的情况下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/9285595f6cad81194cb6862c55b548a6.png)
pom所在的当前目录是D:\example\project-aggregator\project-moduleA,所以可以直接配置为../,即可找到D:\example\project-aggregator\pom.xml
聚合模块清楚地知道自己继承自哪个父模块,但是父模块并不知道自己将会被哪些子模块继承
实际应用中,将module和parent放在一个pom里,是一种常见的做法
大小: 25.5 KB
大小: 3.7 KB
查看图片附件
一、聚合
聚合的作用是把子项目的构建过程串到一起:
<modules> <module>../project-moduleA</module> <module>../project-moduleB</module> </modules>
或者
<modules> <module>project-moduleA</module> <module>project-moduleB</module> </modules>
前者是对应平行结构的,后者是对应树形结构的
在平行结构的情况下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/ae974565be1418b81a67809b9bb0132e.png)
pom所在的当前目录是D:\example\project-aggregator,所以需要配置为../project-moduleA,才能找到D:\example\project-moduleA
在树形结构的情况下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/9285595f6cad81194cb6862c55b548a6.png)
pom所在的当前目录是D:\example\project-aggregator,所以可以直接配置为project-moduleA,即可找到D:\example\project-aggregator\project-moduleA
聚合模块清楚地知道将要聚合哪些子模块,但是子模块对于自己被聚合毫不知情
二、继承
与聚合不同,继承的目的是为了在父模块中进行一些公共配置,以简化子模块的POM文件
<parent> <groupId>net.kyfxbl.modules.project</groupId> <artifactId>project-aggregator</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../project-aggregator</relativePath> </parent>
或者
<parent> <groupId>net.kyfxbl.modules.project</groupId> <artifactId>project-aggregator</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../</relativePath> </parent>
前者是对应平行结构的,后者是对应树形结构的
在平行结构的情况下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/ae974565be1418b81a67809b9bb0132e.png)
pom所在的当前目录是D:\example\project-moduleA,所以需要配置为../project-aggregator,才能找到D:\example\project-aggregator\pom.xml
在树形结构的情况下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/27/9285595f6cad81194cb6862c55b548a6.png)
pom所在的当前目录是D:\example\project-aggregator\project-moduleA,所以可以直接配置为../,即可找到D:\example\project-aggregator\pom.xml
聚合模块清楚地知道自己继承自哪个父模块,但是父模块并不知道自己将会被哪些子模块继承
实际应用中,将module和parent放在一个pom里,是一种常见的做法
大小: 25.5 KB
大小: 3.7 KB
查看图片附件
相关文章推荐
- maven-聚合与继承
- maven入门:依赖 聚合 继承(一)
- Maven实战(六)--子模块的聚合和继承
- Maven深入学习(三)- 聚合与继承
- Maven学习总结(五)——聚合与继承
- Maven实战(六)--子模块的聚合和继承
- maven学习系列——(五)maven聚合与继承
- maven 学习笔记--仓库,聚合和继承,私服搭建
- Maven - 继承和聚合
- Maven详解之聚合与继承
- 04_Maven核心_POM_聚合与继承
- maven-Maven的聚合模块和pom的继承使用
- Maven - 继承和聚合
- Maven项目的聚合和继承
- maven聚合和继承
- Maven的高级应用--依赖,聚合,继承
- Maven的聚合与继承
- Maven学习总结(5)——聚合与继承
- Maven学习6之eclipse下 maven几个注意点:排除、聚合、继承