在Java项目开发中,jar包冲突是比较常见的问题,快速定位冲突位置是非常重要的。传统方式定位主要采用idea自带的Diagrams插件,由于jar依赖是以图表展示的,导致引用错综复杂,往往排查费时费力;今天我们来介绍一个更利于快速定位jar包冲突的插件Maven Helper。
1.Maven Helper安装,下载Maven Helper
2.Maven Helper安装完成
3.Maven Helper使用,打开pom.xml文件,点左下角Dependency Analyzer
4. Conflicts展示冲突,冲突相关的jar在右侧展示,如果右侧有冲突,可以右键Exclude进行排除
5.All Dependencies as List 展示所有依赖项列表,Show GroupId 展示jar包GroupId,Show Size 展示jar包大小,All Dependencies as Tree 展示jar包依赖树。
6.jar包冲突常见的异常
出现以下异常时,若clean jar包后还是无法成功启动项目,就可以考虑是否出现jar包冲突。NoDefClassException、ClassNotFoundException、NoSuchMethodError、NoSuchFieldError;
这些异常可能是引用了之前旧版的jar包,新版本的jar升级并deploy之后,类的路径、名字、字段有变化,导致无法加载到想要的类或方法。