文章首发于有间博客,欢迎大伙光临! 记一次项目构建时的依赖版本冲突
近日在项目线下构建的时候出现依赖版本冲突的问题,特此记录一下解决的方法。
在我们进行项目构建的时候,查看项目中导入的依赖是否正确是必不可少的。当我们需要使用项目中的公共服务的时候,就可以导入该服务的jar包依赖,以此来调用该公共服务。
问题
项目构建时的问题大意是一个jar包被更新升级了,而我们项目中的该jar包还是老旧的jar包,在重新部署的时候错误提示所需要的依赖版本为1.5.2,而项目中的依赖版本为1.3.2。
解决
问题大意就是当前的jar包版本太低了,需要进行升级,升级的过程还是比较简单的,去pom.xml文件下查看并找到对应的依赖,修改版本号并冲洗刷新maven去版本库中拉取即可。
但是遇到的问题显然没有这么简单,在进行一次更新后重新部署,发现问题还是存在,一摸一样的问题,大致一想就知道可能是其他jar包也有引用该依赖。
最终解决
这时我们可以有两种方法找到是哪些jar包引用了需要升级的依赖。
一、首先第一种方法是直接在pom.xml文件中以图的形式显示对应的依赖。
这种方法可以以图片的方式查看依赖,但是…如果你的依赖非常的多,那么显示的效果就会及其的不友好。例如这样。
所以我们更推荐使用第二种方法寻找对应的依赖。
二、以命令行的方式显示对应依赖所在位置。
通过调用mvn dependency:tree 可以查看对应的依赖树,比较轻易的找到对应的依赖嵌套。
最终在pom.xml文件中找到对应的依赖,进行去除即可。
如果是版本升级,那么在外部直接加入最新版本的依赖,按照就近原则会直接使用外部的依赖而不会去使用内嵌旧版本依赖。