jar包依赖冲突该怎么解决(IT枫斗者)
maven jar包依赖规则
- 间接依赖路径最短优先
- 一个项目依赖了a和b两个jar包,其中a-b-c1.0,d-e-c1.0,由于c1.0路径最短,所以项目最后使用的jar包是c1.0
- pom文件中申明顺序优先
- 有人就问了如果a-b-c1.0,d-e-c1.1这样路径一样怎么办?其实maven的作者很聪明,会在pom文件中申明的顺序都选,如果pom文件中先申明了d在申明a,test项目最后的依赖回事c1.1
为什么是jar包冲突?
- 包冲突:指在一个项目的不同部分开发时调用的代码库,资源包的版本号不一致,包冲突的实质是不同部分同一个功能实现用的代码和资源不一致
- 举例说明:在一个项目a中,主工程是a,他调用代码库bjar包又依赖d1.0,a又依赖代码库c,而c又依赖库d2.0.虽然pom有顺序优先,然而,如果在项目中引用了d1.0的内容,又引用了d2.0的内容,项目分不清jar了,项目就启动不起来了
怎么查看jar包冲突,是那些jar冲突了?
-
首先打开pom.xml文件
-
在idea里装mavenhelper插件
-
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3LvvwbPC-1681172146873)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171835301.png)]](https://img-blog.csdnimg.cn/978f16fc73b64e8b83bc6e9a3b42c4af.png)
-
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WocuA0DV-1681172146874)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171845225.png)]](https://img-blog.csdnimg.cn/69005bc20ab642fea7541afb51be8847.png)
-
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UtT0xDG1-1681172146874)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171853369.png)]](https://img-blog.csdnimg.cn/9e8bf36dfa9e4c7a986e4a6eb4809e10.png)
-
安装完成之后要进行重启idea
-
点开pom.xml就能看到
-
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m4dfZHDv-1681172146875)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171896999.png)]](https://img-blog.csdnimg.cn/42f23de4f09e4d8e9edce077585dd2ca.png)
-
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KL7mAPRP-1681172146875)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171909162.png)]](https://img-blog.csdnimg.cn/f1e11a74a8884ca8b88ff3290e1e1d33.png)
-
conflicts就是冲突的意思,下面就是发生冲突的jar和版本
-
然后就是一个一个进行处理
-
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HxPQr4xg-1681172146875)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171985805.png)]](https://img-blog.csdnimg.cn/7a6247ad2dfd4c9ebdc73a11f673d20b.png)
-
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TaxBzfAe-1681172146876)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171993581.png)]](https://img-blog.csdnimg.cn/c88c382d5f9244138e86ec5c930164fb.png)
-
点击jump to source,就会跳转到具体引入这个jar的pom文件的具体情况
-
点击exclude,就会将该jar从本项目中排除掉,就是剔除掉,本项目不再使用该jar,这样本项目中就不存在多版本的某个jar包,一个个去解决,解决完成之后就能启动了



















