首页 > 其他分享 >23、Maven Helper解决依赖冲突

23、Maven Helper解决依赖冲突

时间:2023-09-25 17:24:17浏览次数:39  
标签:依赖 Helper 23 Jar Maven 冲突 版本 加载

一、Jar包冲突的通常表现:

Jar包冲突往往是很诡异的事情,也很难排查,但也会有一些共性的表现。

1、抛出java.lang.ClassNotFoundException:典型异常,主要是依赖中没有该类。导致原因有两方面:

(1)、第一,的确没有引入该类;

(2)、第二,由于Jar包冲突,Maven仲裁机制选择了错误的版本,导致加载的Jar包中没有该类。

2、抛出java.lang.NoSuchMethodError:找不到特定的方法。Jar包冲突,导致选择了错误的依赖版本,该依赖版本中的类对不存在该方法,或该方法已经被升级。

3、抛出java.lang.NoClassDefFoundError,java.lang.LinkageError等,原因同上。

没有异常但预期结果不同:加载了错误的版本,不同的版本底层实现不同,导致预期结果不一致。

 

二、Jar包冲突的本质:

Jar包冲突的本质:Java应用程序因某种因素,加载不到正确的类而导致其行为跟预期不一致。

具体分两种情况:

1、情况一:项目依赖了同一Jar包的多个版本,并且选错了版本;

同一个依赖引入了多个Jar包版本,不同的Jar包版本有不同的类和方法。由于Maven依赖树的仲裁机制导致Maven加载了错误的Jar包,从而导致Jar包冲突

2、情况二:同样的类在不同的Jar包中出现,导致JVM加载了错误的类;

同一类在不同的Jar包中出现。这种情况是由于JVM的同一个类加载器对于同一个类只会加载一次,现在加载一个类之后,同全限定名的类便不会进行加载,从而出现Jar包冲突的问题

针对第二种情况,如果不是类冲突抛出了异常,你可能根本意识不到,所以就显得更为棘手。这种情况就可以采用前文所述的通过分析不同类加载器的优先级及加载路径、文件系统的文件加载顺序等进行调整来解决。

 

三、Maven Helper插件解决Jar包依赖冲突:

1、安装Maven Helper插件:

 2、查看依赖冲突:

 3、解决冲突:

 

四、参考:

Maven依赖冲突解决总结

 

标签:依赖,Helper,23,Jar,Maven,冲突,版本,加载
From: https://www.cnblogs.com/Iven-L/p/17728369.html

相关文章

  • 【原】S27KL0642DPBHV023、S27KL0642DPBHV020、S27KL0642DPBHA020、S27KL0642DPBHI020
    一、概述S27KL0642DPBHV023、S27KL0642DPBHV020、S27KL0642DPBHA020、S27KL0642DPBHI020伪静态随机存储器(PSRAM)HyperRAM™是具备HyperBus™接口的高速CMOS自刷新DRAM。其存储阵列的内部结构类似于DRAM,而外在行为则与SRAM相似。(明佳达供求库存)DRAM阵列需要定期刷新以保持数......
  • The 2023 ICPC Asia Regionals Online Contest (2)
    Preface这场打的有点捞说实话,两个小时出头的时候写完6个题就开始坐牢了K题由于我习惯性地不写数论就扔给徐神了,徐神也是很有思路写了个看着就很对的东西,但不知道为什么过不去赛后发现K其实是个很傻逼的题,类似的思路我最近补CF的时候还遇到过,但就是没细想虽然当时下机的时候和......
  • 创新数据科学探索:DataSpell 2023,专业数据科学家的首选IDE
    在日新月异的数据科学领域,为专业数据科学家提供先进、便捷的工具有着至关重要的意义。2023年,一个备受瞩目的集成开发环境(IDE)——DataSpell,正以其独特的功能与优势,重新定义数据科学家的“瑞士军刀”。→→↓↓载DataSpell2023mac/win版一、DataSpell的主要特性数据科学全流......
  • MoeCTF2023 wp--pwn篇
    五、Pwn1.Pwn入门指北CHALLENGE:Pwn入门指北DESCRIPTION:建议:萌新朋友不要看完指北交上flag就扔掉!!Tips:本指北附件在“通知栏”内的“比赛客服群”中,请加群了解更多信息2.test_ncCHALLENGE:test_ncDESCRIPTION:你知道nc是什么吗3.baby_caculatorCHALLENGE:baby_calcul......
  • 2023-09-25 配对卡方设计的非劣效检验的SAS实现
    近期的工作过程中,需要对配对设计的数据进行非劣效检验,因为SAS中目前没有现成的模块可以使用,因此负责的同事查询了很多文献资料来进行参考,最后选定的是Tango法来计算置信区间,以实现非劣效检验。对同事提供的培训分享中的参考文献进行了比较粗浅的学习,在此记录分享一下。1示例导入......
  • maven 问题之 no POM in this directory
    Windows上mvninstall:install-file报:noPOMinthisdirectory1、问题再现.2、解决方案方案一:.然后输入mvn命令即可mvninstall:install-file-DgroupId=com.rnny-DartifactId=rnny-tools-common-Dversion=1.0-SNAPSHOT-Dpackaging=jar-Dfile=./rnny-tools-commo......
  • 2023.9.25——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午上课,下午学习。我了解到的知识点:1.软件设计模式;2.做软件要根据客户需求;明日计划:1.上课;......
  • 20230925 模拟赛总结
    模拟赛连接排名:\(\text{rank1}\)分数:\(100+100+100+100=400\)集训期间第二次AK!T1:灭火/fire题目描述:求出\(n\)个数\(a_1,a_2,\dots,a_n\)的和除以\(m\)向上取整的结果。(\(0<a_i,m<2^{63},0<n\le20\))思路:直接求和,然后向上取整即可,注意要用高精度,我用的是__int128......
  • 23/09/20 模拟赛总结
    时间安排7:50-8:00看A。8:00-9:30想了想性质,得到了一个假做法,直接莽上去了。9:30-10:20手造了一组数据,发现做法假了,开始打暴力的分段(然而海伦公式丢精度,最后只有\(20\)分)。10:20-11:00看B。写了B的\(50\)分暴力,但是眼瞎没看到数据范围,搞成了\(O(n^4)\),直......
  • 23/09/24 模拟赛总结
    时间安排8:10-8:15读题,BCD都毫无思路。8:15-8:30A题的60分暴力很好拿,15min敲完。8:30-9:05B题没想法,打完爆搜走人。9:13-9:20C题没想法,打完\(O(n^3)\)走人。9:20-9:45D题一个部分分都不会写。。。瞪眼\(25\)分钟走人。9:45-10:50继续观察......