jar包依赖冲突该怎么解决(IT枫斗者)

news/2025/2/18 10:31:53/

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)]

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WocuA0DV-1681172146874)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171845225.png)]

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UtT0xDG1-1681172146874)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171853369.png)]

  • 安装完成之后要进行重启idea

  • 点开pom.xml就能看到

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m4dfZHDv-1681172146875)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171896999.png)]

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KL7mAPRP-1681172146875)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171909162.png)]

  • conflicts就是冲突的意思,下面就是发生冲突的jar和版本

  • 然后就是一个一个进行处理

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HxPQr4xg-1681172146875)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171985805.png)]

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TaxBzfAe-1681172146876)(C:%5CUsers%5Cquyanliang%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681171993581.png)]

  • 点击jump to source,就会跳转到具体引入这个jar的pom文件的具体情况

  • 点击exclude,就会将该jar从本项目中排除掉,就是剔除掉,本项目不再使用该jar,这样本项目中就不存在多版本的某个jar包,一个个去解决,解决完成之后就能启动了


http://www.ppmy.cn/news/47676.html

相关文章

linux内核开发第5讲:字符设备驱动的Makefile和驱动的插入和卸载

文章目录 1.Makefile文件2.解析Makefile2.1 Makefile 条件判断2.2 obj-m obj-y2.3 Linux uname 命令2.4 make -C ( K D I R ) M (KDIR) M (KDIR)M(PWD) 3.操作实践3.1 make参数3.2 执行make3.3 清理内核日志3.4 加载驱动3.5 查看驱动3.6 卸载驱动 1.Makefile文件 ifneq ($(K…

TensorFlow 卷积神经网络实用指南:1~5

原文:Hands-On Convolutional Neural Networks with TensorFlow 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象&am…

迅为RK3588核心板平台新增工业级方案

迅为基于瑞芯微RK3588平台,提供商业级、工业级和国产化核心板,工业级板卡温度可达-40度到85度,国产化板卡从内存,存储等每一个元器件全部采用国产物料。不同板卡,满足各个行业需求。 iTOP-3588核心板参数 CPU &#x…

App 抓包提示网络异常怎么破?

背景 当你测试App的时候,想要通过Fiddler/Charles等工具抓包看下https请求的数据情况,发现大部分的App都提示网络异常/无数据等等信息。以“贝壳找房”为例: Fiddler中看到的请求是这样的: 你可能开始找证书的问题:是…

Python项目之中国数据可视化

文章目录 关键词一、做什么二、怎么做1、获取数据&&处理数据2、数据库设计&&存储数据3、开发后端接口4、前端页面编写 三、效果展示四、总结 关键词 PythonDjangoPython网络爬虫echarts可视化阅读者(Python基础、Django基础、H5基础) …

vue3插槽的使用

插槽就是子组件中的提供给父组件使用的一个占位符&#xff0c;用 表示&#xff0c;父组件可以在这个占位符中填充任何模板代码&#xff0c;如 HTML、组件等&#xff0c;填充的内容会替换子组件的标签。 1.插槽基本使用 子组件SlotComponent.vue <template><div cla…

【计算机专业应届生先找培训还是先找个工作过渡一下?】

计算机专业应届生先找培训还是先找个工作过渡一下&#xff1f; 计算机应届生是先培训还是先工作&#xff0c;这个问题应该困扰了很多专业技能一般的同学&#xff0c;尤其是学历方面还没有优势的普通本专科院校。都说技术与学历优秀的人进大厂&#xff0c;技术一般学历优秀的人能…

树莓派 QT项目开机自启动

我自己用qt设置了一个界面&#xff0c;如何让他开机自启动呢&#xff1f; 目录 1.生成qt项目的可执行文件 2. 编写一个自启动脚本 3.重启树莓派 1.生成qt项目的可执行文件 QT项目的可执行文件就是.exe文件。首先在qt中打开&#xff0c;点击红色方框图标&#xff0c;选择Re…