Maven|高级-创新互联
- 一、分模块开发
- 1.1 分模块开发的意义
- 1.2 分模块开发与设计
- 二、依赖管理
- 2.1 依赖传递
- 2.2 可选依赖和排除依赖
- 三、继承与聚合
- 3.1 聚合
- 3.2 继承(依赖继承)
- 四、属性
- 4.1 使用属性
- 4.2 配置文件加载属性
- 4.3 版本管理
- 五、多环境开发和跳过测试
- 5.1 多环境开发
- 5.2 跳过测试
- 六、游戏
- 6.1 游戏简介和安装
- 6.2 游戏仓库
- 6.3 本地仓库配置游戏
- 6.4 游戏资源上传和下载
将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享。
分模块开发代码设计步骤如下,目的是将bean层和mapper层从原模块中分离出来,变成两个新的模块。
(1)新建2个maven模块
(2)书写模块代码
分模块开发需要先对模块功能进行设计,再进行编码。不会先将工程开发完毕,再进行拆分。
这里的模块代码主要是Book实体类和BookMapper接口,如上图。
(3)通过maven-install指令将模块安装到本地
(4)在模块中引入分模块
org.itxiaoguo maven_1 1.0-SNAPSHOT org.itxiaoguo maven_2 1.0-SNAPSHOT
至此,多模块协同开发搭建完毕。
二、依赖管理 2.1 依赖传递(1)依赖具有传递性,比如A依赖B,B依赖C,那么A依赖C,B称为直接依赖,C称为间接依赖。依赖优先级:
路径优先 | 声明优先 | 特殊优先 |
---|---|---|
当相同依赖在不同层级时,以层级低的为准 | 当相同依赖在相同层级时(不同pom.xml),以配置顺序靠前的为准 | 当相同依赖的不同版本在同一个pom.xml中配置了,以最后一次配置的为准 |
可选依赖 | 排除依赖 |
---|---|
在当前模块可用,不能向下传递。如自己写的依赖提供给别人使用时 | 有但不需要使用该依赖时,排除依赖,不需要写版本号。如当发现一个jar包的东西不好用时可以排除 |
javax.servlet javax.servlet-api 4.0.1 true
org.itxiaoguo maven_1 1.0-SNAPSHOT javax.servlet javax.servlet-api
三、继承与聚合
3.1 聚合聚合是指用将多个模块组织成一个整体,从而达到同时进行项目构建,这个管理工程称为聚合工程,下面介绍如何进行聚合工程开发。
pom ../SSM_1 ../maven_2 ../maven_1
当交换module书写顺序后,再次编译:
子工程可以继承父工程(通常是聚合工程)的配置信息,最常见的是依赖关系继承。作用是简化开发,减少依赖版本冲突。
org.mybatis mybatis 3.5.5 mysql mysql-connector-java 8.0.24 junit junit 4.13 test
org.itxiaoguo maven_parent 1.0-SNAPSHOT ../maven_parent/pom.xml
类型 | 聚合 | 继承 |
---|---|---|
作用 | 快速构建项目 | 快速配置项目 |
相同 | pom文件打包方式为pom | 属于设计型模块,无实际功能 |
不同 | 在当前模块配置聚合关系,模块可以感知到子模块 | 在子模块中继承,父工程无法知道哪些工程继承了自己 |
一般在聚合工程中,在properties标签下以标签形式自定义属性,使用属性可以解决多个版本号一致时修改不方便的问题,将版本号定义成变量引用。
14 14 5.2.10.RELEASE
子工程使用属性
org.springframework spring-webmvc ${spring.webmvc}
4.2 配置文件加载属性
4.3 版本管理工程版本 | 发布版本 |
---|---|
包括SNAPSHOT快照版本和RELEASE发行版本。 | 包括alpha,纯数字和beta版本。 |
(1)使用profiles标签定义多个不同的环境并设置默认环境
env_dep jdbc:mysql://localhost:3306/test env_pro jdbc:mysql://127.1.1.1:3306/test true env_test jdbc:mysql://127.3.3.2:3306/test
(2)使用命令选择执行环境
(1)跳过全部测试
使用maven工具:
点击图中的闪电按钮之后,执行maven指令即可跳过测试。
使用mvn命令:
在pom文件中配置测试插件:
org.apache.maven.plugins maven-surefire-plugin 2.12.4 true
(2)跳过一部分不测试
org.apache.maven.plugins maven-surefire-plugin 2.12.4 true **/BookServiceImplTest.java
六、游戏
6.1 游戏简介和安装1.游戏是什么
游戏是一个特殊的远程仓库,它是架构在局域网内的仓库服务,供局域网内的开发人员使用。当Maven需要下载构建的使用,它先从游戏请求,如果游戏没有的话,则从外部的远程仓库下载,然后缓存在游戏上,再为Maven的下载请求提供服务。
2.游戏的作用
- 内网访问,节省外网带宽。
- 一次外网下载,内网所有用户就可以只下载游戏缓存,加速Maven项目构建。
- 不被外部访问,更加安全。
- 减少外部网络因素,更加稳定。
- 方便内部项目服务的依赖引用,而不需要其他项目的完整源代码。
3.Nexus下载使用
Nexus是一个仓库管理器,通过Nexus来搭建Maven的游戏。
步骤:
(1)下载游戏
官网下载地址,但是一般进不去,访问速度太慢了,这里提供百度网盘下载地址,无风险。
(2)启动Nexus并使用浏览器访问
修改端口,默认端口是8081
(1)在Nexus存储管理器上新建两个maven仓库,并加入到maven-public仓库组中。
(2)修改Maven的setting.xml文件
org.example maven_4 1.0-SNAPSHOT
itxiaoguo-release http://localhost:8081/repository/itxiaoguo-release/ itxiaoguo-Snapshot http://localhost:8081/repository/itxiaoguo-Snapshot/
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文标题:Maven|高级-创新互联
网址分享:http://myzitong.com/article/hoice.html