文章目录
- 1. maven基础回顾
- 三种仓库
- 坐标的书写规范
- 依赖范围
- 一键构建
- maven常用命令
- maven三套生命周期
- 2. 包版本冲突问题
- 什么是依赖传递
- 依赖冲突的解决java基础 jar包
- 1. 先声明优先原则
- 2. 直接声明依赖优先原则
- 3. 排除依赖
- 4. 锁定依赖
教程思路:
1. maven基础回顾
三种仓库
- 本地仓库
- 远程仓库(私服)
- 中央仓库
仓库之间的关系:当我们启动一个maven工程的时候,maven工程会通过pom文件中jar包的坐标去找对应jar包。
默认情况下,如果本地仓库没有对应jar包,maven工程会自动去下载jar包到。
在公司中,如果本地没有对应jar包,会下载jar包,
如果私服没有jar包,可以从下载,也可以从。
坐标的书写规范
- groupId 公司或组织域名的倒序
- artifactId 项目名或模块名
- version 版本号
依赖范围
- Compile
- Test
- Runtime
- Provided
一键构建
maven自身集成了tomcat插件,可以对项目进行编译,测试,打包,安装,发布等操作。
maven常用命令
- clean
- compile
- test
- package
- install
- deploy
maven三套生命周期
清理生命周期,默认生命周期,站点生命周期。
2. 包版本冲突问题
什么是依赖传递
先添加 springmvc的核心依赖的坐标
会发现出现除了以外的其他 jar。因为我们的项目依赖 spring-webmvc.jar,而
会依赖 等等,
所以 这些 jar 包也出现在了我们的 maven 工程中,这种现象我们称为。从下图中可看到他们的关系:(请注意
spring-beans 的版本)
依赖冲突的解决
maven 自动按照下边的原则调解:
1. 先声明优先原则
在 pom 文件定义依赖,先声明的依赖为准。
2. 直接声明依赖优先原则
例如:还是上述情况,和 都会传递过来 ,那
如果直接把 的依赖直接写到 pom 文件中,那么项目就不会再使用其他依赖传
递来的 spring-beans,因为自己直接在 pom 中定义 spring-beans要比其他依赖传递过来的路
径要近。
在本工程中的 pom 中加入 spirng-beans-5.0.2 的依赖,根据,系统将导入
spirng-beans-5.0.2:
3. 排除依赖
例如:依赖 spring-webmvc,但排除 spring-webmvc 所依赖的 spring-beans。
4. 锁定依赖
版本锁定后则不考虑依赖的声明顺序或依赖的路径,添加到工程中,此方法在企业开发中常用
标签中锁定了版本,在 标签下不需要再指定版本。
ssm案例的poml文件的完整依赖如下:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/26189.html