书接上文:必学的maven的起步-CSDN博客
分模块开发与设计
分模块开发:
- 创建模块
- 书写代码模块
- 模块中需要其他的模块,就将他安装到仓库
- 然后再dep中导入依赖
- 通过maven指令安装模块到本地仓库(install)
聚合与继承
聚合:
- 聚合:将多个模块组织成一个整体,同时进行项目构建的过程。
- 聚合工程:通常是一个不具有业务功能的”空“工程
- 作用:使用聚合工程可以将多个工程编组,通过对聚合工程进行构建,实现对所含的模块进行同步构建
- 当工程中,某个模块发生变更,必须保证保障工程中与已更新模块关联的模块同步更新,此时可以使用聚合工程来解决此批量模块同步构建的问题
<groupId>org.aqiuo</groupId>
<artifactId>spring</artifactId>
<version>1.0-SNAPSHOT</version>
<!--注意打包方式是pom-->
<packaging>pom</packaging><!--设置管理模块的名称-->
<modules><module>../spring02</module><module>../spring03</module><module>../spring04</module>
</modules>
步骤:
1.设置聚合工程的的打包类型为pom
注意:每个maven工程都有对应的打包方式,默认为jar,web工程为war
<packaging>pom</packaging>
2.设置当前的聚合工程所包含的子模块名称
注意:
- 聚合工程所包含的模块再运行构建会根据模块间的依赖关系设置构建顺序
- 与聚合工程的配置书写位置无关
- 参与聚合的工程无法向上感知是否参数聚合。
- 只能向下配置哪些模块与此工程聚合
<modules><module>../spring02</module><module>../spring03</module><module>../spring04</module>
</modules>
继承
概念
- 继承描述的是两个工程间的关系,与java中的继承相似
- 子工程可以继承父工程的配置信息,常见于依赖关系的继承
作用:
- 简化配置
- 减少版本冲突
步骤:
1.创建Maven父模块,设置打包类型为pom
2.在父工程的pom.文件中配置依赖关系(子工程沿用父工程的依赖关系)
<parent><groupId></groupId><artifactId></artifactId><version></version><!--快速找到继承的路径填写父工程的pom文件--><relativePath>../spring</relativePath>
</parent>
3.在父工程的pom.文件中配置子工程中可选的依赖关系
<!--注意在dependencyManagement中配置的是子工程的可选文件-->
<dependencyManagement><dependencies><dependency><groupId></groupId><artifactId></artifactId><version></version></dependency></dependencies>
</dependencyManagement>
4.在子工程中配置当前工程所继承的父工程
<parent><groupId></groupId><artifactId></artifactId><version></version><!--填写父工程的pom文件--><relativePath></relativePath>
</parent>
5.在子工程中配置使用父工程中可选依赖的坐标
<dependencies><dependency><groupId></groupId><artifactId></artifactId>//不用提供版本号,由父项目统一管理,避免版本冲突,加了版本号就是新的了</dependency></dependencies>
聚合和继承的区别:
作用:
- 聚合用于快速构建项目
- 继承用于快速配置
相同点:
- 聚合和继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
- 聚合和继承均属于设计模块,并无实际的模块内容
- 一般聚合和继承都是一个工程
不同点:
- 聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
- 继承是在子模块中配置关系,父模块无法感知到继承了自己。
属性
属性值(配置properties元素)
使用el表达式${}写入
<properties><junit.version>4.12</junit.version><mysql.version>5.1.35</mysql.version>
</properties>
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency>
版本管理
工程版本:
- SNAPSHOT(快照版本)
- 项目开发中临时输出的版本,称为快照版本
- RELEASE(发布版本)
- 项目开发到进入里程碑后向外部发布的稳定版本。
发布版本:
- alpha版
- beta版
- 纯数字版
实现代码:
多环节的配置与应用
多环境开发
maven提供配置多种环境的设定,帮助开发者使用过程中快速切换环境
<!--开发环境--><profile><id>env_dep</id><properties><jdbc.url>jdbc:mysql://127.0.0.1:8080/ssm</jdbc.url></properties><activation><!--设定是否为默认环境--><activeByDefault>true</activeByDefault></activation></profile><!--生产环境--><profile><id>env_dep1</id><properties><jdbc.url>jdbc:mysql://127.2.2.2:8080/ssm</jdbc.url></properties></profile><!--测试环境--><profile><id>env_dep2</id><properties><jdbc.url>jdbc:mysql://127.3.3.3:8080/ssm</jdbc.url></properties></profile>
</profiles>
指定环境启动命令:
mvn 指令 -P 环境定义id
例子:mvn install -P env_dep
跳过测试
应用场景:
- 功能更新没有开发完毕
- 快速打包
点击下边的图标就可以跳过全部的测试用例