文章目录
- 多模块构建维护
- 一、聚合
- 二、继承
- 三、聚合与继承
- 四、属性
- 4.1 介绍
- 4.2 常见的属性及其调用方式
- 1、自定义属性
- 2、内置属性
- 3、setting属性
- 4、java系统属性
- 5、环境变量属性
多模块构建维护
可以看到通过上一章的讲解,我们将一个ssm项目分模块管理,形成了pojo、dao、service、controller四个模块,并且逐层递进形成依赖关系,假设此时dao层模块出现了改动,我们该如何进一步管理呢?
一、聚合聚合用于快速构建maven工程,一次性构建多个项目、模块
操作起来很简单:
- 创建一个空模块,打包类型定义为pom
- 定义当前模块进行构建操作时关联其他的模块(绑定)
注:参与合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关
首先构建一个maven的项目,只留pom.xml文件:
添加项目的管理配置:
4.0.0 com.zyx maven_ssm 1.0-SNAPSHOT pom ../maven_ssm_pojo ../maven_ssm_dao ../maven_ssm_service ../maven_ssm_controller
对项目进行整体的编译,可以看到结果显示的是所有的模块选项:
install一下:
可以看到对应的文件夹下添加了jar包文件:
返回顶部
二、继承
模块间依赖关系的维护
实际开发过程中,由于每个模块一个负责人,所以会导致每个人使用的相同依赖出现不同版本,可能会引发版本冲突问题。
如上图所示,假设service、dao模块都用到了spring-context依赖,但是一个5.1.9,另一个5.2.0,就有可能引起版本的问题。此时我们可以通过继承实现子工程中沿用父工程(ssm)的配置,统一版本。
首先在父工程中声明其子工程的所需要的所有坐标,并配置声明依赖管理:
com.zyx maven_ssm_pojo 1.0-SNAPSHOT com.zyx maven_ssm_dao 1.0-SNAPSHOT com.zyx maven_ssm_service 1.0-SNAPSHOT org.springframework spring-context 5.1.9.RELEASE org.mybatis mybatis 3.5.3 mysql mysql-connector-java 5.1.47 org.springframework spring-jdbc 5.1.9.RELEASE org.mybatis mybatis-spring 2.0.3 com.alibaba druid 1.1.16 com.github.pagehelper pagehelper 5.1.2 org.springframework spring-webmvc 5.1.9.RELEASE com.fasterxml.jackson.core jackson-databind 2.9.0 javax.servlet javax.servlet-api 3.1.0 provided junit junit 4.12 org.springframework spring-test 5.1.9.RELEASE org.apache.tomcat.maven tomcat7-maven-plugin 2.1 80 /
子工程中对应声明使用父工程的依赖配置,同时将子工程所有的版本信息去除:
com.zyx maven_ssm 1.0-SNAPSHOT ../maven_ssm/pom.xml org.springframework spring-context
可继承的资源:
返回顶部
三、聚合与继承
作用
- 聚合用于快速构建项目
- 继承用于快速配置
相同点
- 聚合与继承的pom.xm文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
- 聚合与继承均属于设计型模块,并无实际的模块内容
不同点
- 聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
- 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
返回顶部
四、属性 4.1 介绍
版本统一的重要性
虽然我们可以在父项目中进行依赖资源的统一管理,但是不免我们有时会出错,如上图所示,上下配置的资源版本不一致,这种情况下我们可以增添属性信息避免人为配置的出错。
5.1.9.RELEASE 4.12 junit junit ${junit.version} org.springframework spring-test ${spring.version}
对于我们继承的项目依赖,版本同样可以统一,因为使用的是maven的项目对象版本,在最开始就声明了
4.0.0 com.itheima ssm 1.0-SNAPSHOT pom com.itheima ssm_pojo ${version} com.itheima ssm_dao ${version} com.itheima ssm_service ${version}
返回顶部
4.2 常见的属性及其调用方式 1、自定义属性
2、内置属性
3、setting属性
4、java系统属性
5、环境变量属性
返回顶部
暑期编程PK赛 得CSDN机械键盘等精美礼品!



