前言
本篇博客的核心:理解maven 项目模块化,继承,聚合 的含义
maven 项目模块化
含义
maven项目模块化:使用maven 构建项目,管理项目的方式,我们可以将maven项目根据内在的关系拆分成很多个小项目【模块】这样更方便管理。
我举个例子方便大家理解
在现实生活中,汽车厂家进行汽车生产时,由于整个生产过程非常复杂和繁琐,工作量非常大,所以车场都会将整个汽车的部件分开生产,最终再将生产好的部件进行组装,形成一台完整的汽车。
如下图所示
如果对应到maven工程 根据我们之前所学的三层架构思想,一个完整的maven项目根据模块化的理解,应该就是如下图所示:
maven 继承
在我们学习Java基础的时候就知道, 封装,继承 ,多态 是对象的三大特点。其中继承 是一般是子类 继承父类,从父类中获取属性或方法。
在这里 maven 继承,又是表示什么呢?
子模块从父模块中继承 共享的依赖,配置等
大家请看,上面那幅图,我们发现 ,无论是实体类 projo 还是 dao层,service层 ,都写着从maven父模块中去继承一些东西可能是依赖也可能是相同的配置等【这个根据具体情况论】
现在我们知道 maven 继承是什么意思后,我们应该 如何表示 子模块和父模块的关系呢?
在Java基础中我们知道 extend 关键字 后面跟着的父类。那么在maven 构建的项目中,我们应该如何确定该模块是父模块呢?
如下图所示
我们是通过在该模块的pom 文件中 添加 打包方式为 pom 在 packaging 标签中
<packaging> pom </packaging>
maven 聚合
maven 聚合的含义?
就是将 maven 子模块 放在父模块中pom文件统一管理 使用modules 标签
好处
- 统一管理
例如拆分后的maven工程有多个,如果要进行打包,就需要针对每个工程分别执行打包命令,操作起来非常繁琐。这时就可以使用<modules>标签将这些工程统一聚合到maven工程中,需要打包的时候,只需要在此工程中执行一次打包命令,其下被聚合的工程就都会被打包了。
- 辨别身份
当在父模块中看到 modules 标签,就知道该标签的内容就是表示都是子模块的
如下图所示
实例
创建一个maven项目,其中包括子模块,父模块
重点
这些 表示maven 继承,聚合关系 不用我们手动在maven 父模块的pom文件中添加,一般是我们当右键点击父模块创建子模块时,会自动更新到pom文件中。