Maven高级
一、分模块开发与设计
1.什么是分模块开发?
一个大项目拆分为多个小项目(maven模块)组成,而且它们是有依赖关系的。
2.为什么需要分模块开发
使用传统的ssm结构,在随着项目的进行,我们可能遇到下面一系列的问题:
(1) 大部分的main或者一些service以及mapper在多个项目中是通用的
(2) pom.xml中的依赖越来越长
(3) build整个项目的时间越来越长,尽管你只是一直在web层工作,但是不得不build整个项目
(4) 某个模块,只想让一些经验丰富的人来维护,但是现在每个开发者都能修改这个模块,这导致关键模块的代码质量达不到要求
3.怎么去分模块开发
写项目写代码尽量满足以下内容:
(1) 开闭原则
对扩展开放
对修改关闭–>公共内容不要乱修改
(2) 高内聚低耦合
拆分:
按照层次结构拆分
按照业务功能拆分:电商、订单、物流……
小结
分模块开发
- 模块中仅包含当前模块对应的功能类与配置文件spring
- 核心配置根据模块功能不同进行独立制作
- 当前模块所依赖的模块通过导入坐标的形式加入当前模块后才可以使月
- web.xml需要加载所有的spring核心配置文件
工程模块与模块划分
二、聚合
1.作用
用于快速构建Maven工程,一次性构建多个项目/模块
2.制作方式
(1)定义一个空模块,打包类型设置为pom
<packaging>pom</packaging>
(2)定义当前模块进行构建操作时关联的其他模块名称
<modules>
<module>../模块名</module>
<module>../模块名</module>
<module>../模块名</module>
</modules>
3.注意事项
参与聚合操作的模块最终执行顺序月模块间的依赖关系有关,与配置顺序无关
三、继承
1.作用
(1)通过继承可以实现在子工程中沿用父工程中的配置
(2)maven中的继承与java中的继承相似,在子工程中配置继承关系
2.制作方式
(1)在子工程中声明其父工程坐标与对应的位置
<!--定义该工程的父工程-->
<parent>
<groupId>com.lb</groupId>
<artifactId>ssm</ artifactId>
<version>1.0-SNAPSHOT</version>
<! --填写父工程的pom文件-->
<relativePath> . ./ ssm/ pom.xml</ relativePath>
</parent>
(2)在父工程中定义依赖管理
<!--声明此处进行依赖管理-->
<dependencyManagement>
<!--具体的依赖-->
<dependencies>
<!—-spring环境-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-cont