maven【传递依赖】的版本确定规则
来源:互联网 发布:加拿大苹果软件商店 编辑:程序博客网 时间:2024/05/17 07:12
maven传递依赖的版本确定规则,也就是对重复的间接依赖的包的选择规则:
1. 在工程的依赖树上,深度越浅,越被优先选择。如本例中的spring-jms. 由于pom中直接声明了3.0.2版本的spring-jms,所以3.0.2版本的spring-jms在工程的依赖树上处在第一层,而activemq-optional所间接依赖的3.0.3版本的spring-jms则是处在工程依赖树的第二层,则maven会以深度浅者优先,所以最后解析的结果是选择了3.0.2版本的spring-jms。
2. 若两个依赖包处于依赖树上的同一层,则谁在前,选择谁。如本例中的spring-core.一个是activemq-optional的间接依赖,一个是spring-context的间接依赖,两个依赖都是处在第二层上,但由于是activemq-optional声明在前,所以maven优先选择了activemq-optional所依赖的3.0.3的版本!
3. 避免传递依赖引起版本问题的最佳实践。现在很多的开源框架和工具都开始分模块打包发布,比如spring,hibernate都是如此,而这些模块之间又有可能存在相关的依赖关系,为了避免出现版本不一致问题,比如上例中出现的spring-jms使用的是3.0.2,而spring-core却使用了3.0.3这种情况,需要我们对一个工程直接依赖的某一框架的多个模块都要做出声明,而不要依赖其内部的依赖关系来间接引入。总结起来就是:一般来说,如果工程直接依赖到某一框架的多个模块,最好全部声明这些依赖。
- maven传递依赖的版本确定规则
- maven【传递依赖】的版本确定规则
- maven传递依赖的版本确定规则
- maven传递依赖的版本确定规则
- maven依赖某工程确定的版本
- maven传递依赖规则
- 解决maven传递依赖中的版本冲突
- 解决maven【传递依赖】中的版本冲突
- 解决maven传递依赖中的版本冲突
- 解决maven传递依赖中的版本冲突
- 解决maven传递依赖中的版本冲突
- Maven依赖管理的规则
- Maven依赖治理的规则
- maven 依赖的传递性
- 关于Maven的依赖传递
- Maven的传递性依赖
- maven的依赖传递与排除依赖
- maven的依赖版本范围
- 求奇偶数的简单方法
- 粉碎5个NoSQL流言:各司其职,NoSQL的出现比关系型更早
- 浅谈MySQL数据库查询优化
- Struts2 高危漏洞修复方案
- wxpython 在执行的时候报错
- maven【传递依赖】的版本确定规则
- 带姓名的多科成绩单
- Linux SVN 切换用户
- 使用 /proc 文件系统来访问 Linux 内核的内容
- android的Java代码中设置控件的margin
- Mac电脑下搭建Apache web服务器
- js实现页面定时跳转
- 密码学简介
- NoSQL生态系统