关于maven包管理版本冲突的问题
来源:互联网 发布:淘宝网购物女装冬装 编辑:程序博客网 时间:2024/04/30 15:12
maven是一个非常好的包管理软件,我们通过pom.xml的设置就可以实现jar包引入项目,不需要自己手动加入,而且在项目打包生成的时候也非常方便。
但是,在各种jar包引入的时候,可能会因为引入多个版本的jar包引起一些冲突,导致各种bug,我们当然可以利用maven自己带的命令,mvn dependency:tree来实现依赖的展示。
但是,当项目依赖过多,或者关系非常复杂的时候,我们很难从图中找到哪些依赖的冲突,从而exclusion掉,解决包冲突。
经过一番搜索,我查到了一个比较好的idea下的插件 maven helper,可以直接显示出某个包背多次依赖,标注出版本不同导致的冲突。大家可以去安装一下,省事胜利。
对这个问题的进一步思考和解决:
通过 dependency:tree这个命令,我觉得这个插件实现的原理我有点明白了。
首先,造成包冲突的原因是同一个jar包,引入了不同版本,在执行的时候程序不知道调哪个版本。
所以,我猜测插件的实现原理是这样的,
1.需要对所引入依赖的包先进行一个遍历,将多次引入的jar包和其版本记录下来。当然,这需要对pom.xml中的信息先进行提取处理,这不是核心。
2.将相同jar包的信息存成一种数据结构,形成一个LIst,做展示用就可以了。
这里面存在的问题:有些大的jar包里会包含小的,比如日志处理等,我如何指导大的里面包含了哪些小的?
这就是我的一些思考吧。
来公司了,还发现了更厉害的操作,配置多种profile环境,直接切换,非常方便,还得多学习啊
最后来张这个插件的效果图
阅读全文
0 0
- 关于maven包管理版本冲突的问题
- Maven包的冲突问题
- 关于MAVEN项目包冲突问题
- 关于maven项目jar包的版本管理方法
- Maven 的jar包冲突管理
- 关于maven包冲突
- 【Maven】---包冲突问题!!!
- 怎么解决maven管理jar包冲突问题
- maven依赖jar包时版本冲突的解决
- 关于Android引用包冲突的问题。
- android关于provider包冲突的问题
- maven依赖包冲突问题
- maven依赖包版本冲突小尝试
- maven解决jar包版本冲突
- maven解决jar包版本冲突
- maven排查jar包版本冲突
- Maven中jar包之间的冲突问题
- Maven打包方式,以及jar包冲突问题的解决方法
- POJ2421_通过Kruskal实现原有树的合并
- leetcode:K inverse pairs array
- 合并表记录
- Hibernate 一对一主键双向关联
- 剑指offer面试题45 圆圈中最后剩下的数字(java实现)
- 关于maven包管理版本冲突的问题
- Ubuntu14.04安装pycharm的步骤
- PAT 甲级1003. Emergency (25) DIJKSTRA
- 新手上路之面向对象 笔记
- Mysql-创建数据库
- APPLYING DEEP LEARNING TO ANSWER SELECTION: A STUDY AND AN OPEN TASK 论文阅读
- nohup /dev/null 2>&1 含义详解
- 389. Find the Difference
- 挑战练习:添加后退按钮(二)基于《Android编程权威指南》