一、聚合
产生背景:有时候我们的一个项目包含很多个模块,如淘宝系统,包含订单模块、用户模块等。如果我们要启动淘宝这个大项目,那就需要将很多个模块一个一个启动,费时费力。聚合主要的作用就是将所有的小模块聚合起来,只需要启动一次即可启动整个项目。简单来说,聚合就是为了一次构建多个项目这种需求而服务的。
- 聚合Maven项目的打包方式为Maven
- 使用<modules><module>标签引入子模块;module的值为子模块的相对路径
- 一般聚合项目只包含POM文件,不会在聚合项目中编写项目代码。
二、继承
产生背景:有时候我们很多的项目都用了同样的依赖,如很多项目都使用了spring,所以基于编程继承的思想,Maven也有了继承的概念。
- 一般我们想的时将公共的依赖部分写进父项目中,然后继承它,但是这里有个问题,因为不确定之后的子模块是否需要该依赖。
- 这种情况的话可使用<dependencyManagement>标签来解决该问题
- dependency Manager元素下依赖声明不会引入实际的依赖,不过如果在子类继承了父类后,虽然不会实际的引入依赖,但是会继承<dependencyManager>声明的配置,从而简化配置。
- 同样还提供<pluginManagement>实现以上功能
- 这种情况的话可使用<dependencyManagement>标签来解决该问题