目录
前沿
最近想系统的学习一下maven,通过maven进行项目管理的确很方便。maven系统学习地址如下(后面进行补充,暂时挖一个坑后面慢慢填坑)
今天工作遇到了maven包的冲突问题,自己查了一些资料,也请教了身边的一些大佬,重于解决了问题,这里进行了整理供大家分享。
1、使用工具maven helper
我门可以看到,插件是这么说的,maven工作中必须使用的插件,可以看出该插件还是很好用的。
下面是插件的github地址,有详细的使用方法等介绍。有兴趣的小伙伴可以看一看。
https://github.com/harishkannarao/MavenSurefireFailsafeExamples
安装方法
这里使用的工具是idea的插件--maven hepler 安装方式与其他插件的方法相同,这里不在赘述。
不会的小伙伴可以参考这篇文章
https://blog.csdn.net/qq_29235677/article/details/88172703
安装完成之后,需要重启项目插件才能够生效,按装完成的标准就是找到pom文件,在pom文件中看到 dependency analyzer标志,说明maven helper插件就安装成功了。
2、使用方法
点击dependency analyzer之后就会进入到下面的页面
这里是List的形式展示的依赖关系,右侧展示了包的引用关系,通过diwork-pub-auth引用了diwork-common包,其中有半部分标红的就是冲突版本,白色的是当前的使用版本。
这里是以tree树形结构展现的依赖关系,树状结构有点乱但是能够进行过滤,选中Filter就能够根据条件进行过滤还是很好用的。
无论是树形结构还是list结构,标红的就是有冲突的包,当前界面的右侧部分2.7.2是当前使用的版本,下面飙红的2.7.1就是冲突的版本。通过右击可以把不想要的jar依赖排除,而不需要自己找到相应的pom文件,自己写exclude标签实现排除依赖,是不是很方便。
实例分析:
目录
再在启动项目的时候显示Protocol类找不到。
之后我全局搜索当前的类,发现类是存储在的???
还找不到是为什么,,,因为项目已经引入了统一的三方包和二方包的管理,应该不会有问题了???嗯肯定是jar包冲突了。点击当前Protocol类所在的位置,
哈哈发现两个cas-client-core的jar包,类加载器加载的是3.3.2版本的jar包,没有加载正确的jar包。嗯找到问题了,把
上面的是三方包同意管理。
这是自己手动指定的jar包版本,这里只需要把3.3.2版本注释掉,就会使用父类的版本了。
关于parent相关的maven版本依赖可以看这篇文章: