maven传递依赖的版本确定规则
来源:互联网 发布:周末是否算法定节假日 编辑:程序博客网 时间:2024/06/07 01:57
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的依赖版本范围
- vs2010调试启动慢
- 了解Github
- oracle 主键索引和unique 索引 和sql server 主键的异同
- 互联网IT巨头
- POP3与IMAP的区别和修改JBOSS的端口
- maven传递依赖的版本确定规则
- linux I2C (1)
- HBase MemstoreLAB
- 树表实现网址
- 应用程序间的通信
- oracle 11g 表空间迁移 实验过程
- linux工具rdate:同步网络时间
- 纠结的能上QQ,不能开网页问题。
- SXS: Unable to resolve storage root for assembly directory vs2010