您现在的位置是:首页 >技术教程 >maven核心功能——依赖和构建管理网站首页技术教程
maven核心功能——依赖和构建管理
依赖管理和配置

依赖信息查询方式
1/官网查询:https://mvnrepository.com/
2/插件查询



选择copy of maven ,dependency 信息已经在粘贴板中

版本号也可提取成公共变量,放在 properties 中


scope的用法

因为test注解使用的junit依赖,限制了只能在main中使用,所以在test中无法使用@Test注解

依赖传递和冲突
依赖传递
项目中,需要导入jackson相关的依赖,通过之前导入经验,jackson需要导入三个依赖,分别为:

通过查看网站介绍的依赖传递特性:data-bind中,依赖其他两个依赖

最佳导入:直接可以导入data-bind,自动依赖传递需要的依赖

依赖冲突
maven发现已经存在依赖会终止依赖传递,避免循环依赖和重复依赖的问题
依赖冲突发生的场景:
A 依赖 B 1.0 版本
C 依赖 B 2.0 版本
那maven引入的B依赖到底是哪个版本的呢
解决依赖冲突(如何选择重复依赖)方式:
1. 自动选择原则
- 短路优先原则(第一原则)
A—>B—>C—>D—>E—>X(version 0.0.1)
A—>F—>X(version 0.0.2)
则A依赖于X(version 0.0.2)。
- 依赖路径长度相同情况下,则“先声明优先”(第二原则)
A—>E—>X(version 0.0.1)
A—>F—>X(version 0.0.2)
在<depencies></depencies>中,先声明的,路径相同,会优先选择!
小思考:
前提: A 1.1 -> B 1.1 -> C 1.1 F 2.2 -> B 2.2 pom声明了: F 2.2 A 1.1 B 2.2
那么maven引入的依赖有哪些?
F 2.2 A 1.1 B 2.2。没有C 1.1,因为在B 1.1依赖冲突时,后续的依赖传递全部终止
依赖导入失败场景和解决方案
1/网络故障或仓库宕机
2/依赖名称或版本号问题
3/本地maven仓库或缓存被污染,导致 Maven 无法正确地使用现有的依赖项,并且也无法重新下载!——解决方式:删除污染文件,位置就是groupId中显示的位置,发现内部包含.lastupdated结尾的文件删除即可

bat脚本使用:
maven_clean.bat
使用记事本打开
set REPOSITORY_PATH=D:
epository 改成你本地仓库地址即可!
点击运行脚本,即可自动清理本地错误缓存文件!!





QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
U8W/U8W-Mini使用与常见问题解决
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结