Maven 聚合项目
maven 聚合项目的目的是管理一组相关的子项目
- Maven管理聚合项目
- SpringBoot聚合项目
项目结构:
- 外层项目(父级项目), 不管理代码, 管理公共依赖, 统一管理每个组件项目
- 内层项目, 也称为模块项目, 也称为子项目, 可以管理自己的代码, 模块之间可以依赖, 自动获得依赖模块中的组件
案例: 搭建一个商城项目
- 管理项目 shop
- 子模块, 通用组件模块 shop-commons
- 子模块, 前台模块 shop-portal
- 子模块, 后台模块 shop-backend
搭建步骤:
-
创建Maven项目作为父级项目, 项目名称 shop
- 因为没有代码,则删除src文件夹
- 父模块pom中设置
<packaging>pom</packaging>
父模块的modules是子模块创建之后自带的,如果没有手动加上
-
创建子模块项目
- 在父项目上选择右键->new->module->选maven下一步->成功
- 添加子项目名称, shop-xxx,子模块的pom中要继承父模块(parent标签这个是创建好之后自动生成的,如果没有就写上)
聚合项目中, 可以解决统一依赖管理问题, 父项目添加的依赖, 子项目都会获得依赖
依赖管理
- 所有子模块项目需要依赖的组件写在 父级项目的
<dependencies>
中(也就是把子模块相同的pom文件依赖都写在父模块的pom中) - 部分子模块项目需要依赖组件, 写在 父级项目的
<dependencyManagement>
, 在子项目中使用<dependencies>
依赖组件, 此时组件的版本由父级项目统一管理(子模块单独不一样的依赖可以写在这个里面,然后需要的子模块在自己的pom里面写坐标即可使用),如图
部分子模块用的这在上图dependencyManagement标签中,然后需要用的子模块在自己的pom里面写坐标就好了(子模块用的写dependencies标签中)。
总而言之说白了就是所有子模块相同的依赖写在父模块的dependencies标签中,不同的写在dependencyManagement标签中,哪个子模块单独用不同的就在自己pom中写地址就行。
子模块组件之间的依赖
例如:子模块A如果想用子模块B的方法,就可以在A的pom中写入依赖B,就可以使用B模块中的组件(方法)了
图中就是shop-protal想要使用shop-commons的组件(方法)
SpringBoot 聚合项目
父项目 tshop
\-- tshop-commons 模块项目
\-- tshop-portal 模块项目
\-- tshop-item 模块项目
创建步骤:
-
创建SpringBoot项目作为父项目, 然后将src文件夹删除, pom文件中设置
<packaging>pom</packaging>
-
创建子模块项目, 选择SpringBoot, 选择Web组件(spring web). 创建后修改子模块项目pom文件:
-
<parent>
修改或者添加, 其值指向父级项目(阿里云创建的没有parent加上就好)
-
删除掉子模块项目
<groupId>cn.tedu</groupId>
-
回到父项目pom文件登记子模块名: tshop-commons
-
-
测试: 在子模块中, 添加一个 index.html, 启动子模块SpringBoot程序进程测试.