一、简介
用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块,multi-module)相互关联.模块之间关系结构比较清晰。例如:
一个简单的Maven模块结构是这样的:
---- app-parent
|-- pom.xml (pom)
|
|-- app-util
| |-- pom.xml (jar)
|
|-- app-dao
| |-- pom.xml (jar)
|
|-- app-service
| |-- pom.xml (jar)
|
|-- app-web
|-- pom.xml (war)
上述简单示意图中,有一个父项目(app-parent)聚合很多子项目(app-util, app-dao, app-service, app-web)。每个项目,不管是父子,都含有一个pom.xml文件。而且要注意的是,小括号中标出了每个项目的打包类型。父项目是pom,也只能是pom。子项目有jar,或者war。根据它包含的内容具体考虑。
这些模块的依赖关系如下:
app-dao --> app-util
app-service --> app-dao
app-web --> app-service
注意依赖的传递性(大部分情况是传递的,除非你配置了特殊的依赖scope),app-dao依赖于app-util,app-service依赖于app-dao,于是app-service也依赖于app-util。同理,app-web依赖于app-dao,app-util。
二、具体步骤
1. 创建父工程
点击右键New-选择Maven,选择 Maven project. 这Maven project 和 Maven Module 区别 在 project 是父工程 ,Module 是创建子工程.
![](https://i-blog.csdnimg.cn/blog_migrate/479fa53847593404b59cfac9b56a70d5.png)
填写 group id, artifact id 这里packageing 选择 pom
![](https://i-blog.csdnimg.cn/blog_migrate/2458669f265457005f2a7a7cea5700df.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e86eb57468a22af6d61a6eb91af30ba8.png)
2. 创建子工程
点击app-parent 右键 创建 maven module 子工程,这里除了app-web 选择 war, 其它类型都选择jar
![](https://i-blog.csdnimg.cn/blog_migrate/60c555a6eff7a9004934846f412f6537.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0e59cfb14aeb1af77eba4bb2e36f0c54.png)
几个子工程创建完后,结构目录如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/53c58af09a836440e55ba279019b6c5d.png)
3. pom.xml配置文件
(1)app-parent
![](https://i-blog.csdnimg.cn/blog_migrate/711dbcee4d77463e8696f72228a08140.png)
(2)app-web
![](https://i-blog.csdnimg.cn/blog_migrate/0c1e5b552c330fa143fb2a07f60b0cc3.png)
(3)app-service
![](https://i-blog.csdnimg.cn/blog_migrate/288b42120fcb7a65e3443791b687b026.png)
(4)app-dao、app-until按照依赖自行配置
4. 进入app-parent,执行安装
5. 进入app-web,自动发布到服务器。(cargo的自动配置,不常用,了解即可)
传统的Maven分模块开发
【具体参考】https://www.cnblogs.com/xdp-gacl/p/4242221.html
springboot的Maven分模块开发
【具体参考】https://blog.csdn.net/weixin_38552969/article/details/80435315