解决maven依赖冲突

今天新建了一个项目,初始化了一下,发现跑不起来.

报错信息

java.lang.ClassNotFoundException: org.mybatis.logging.LoggerFactory

pom文件中有mybatis-plus-boot-starter 按道理来说是不应该出现这种情况的

上网搜了一下,发现各种各样的说法都有,没啥头绪.

冷静下来思考一下,虽然百度上各种各样的说法都有,但是归总一下,其实都是在说pom文件的依赖有问题.

所以我们应当看下pom文件中有没有依赖冲突.

下好maven-hepler插件 很清晰的可以看到哪个jar包有冲突

解决了就OK了

善用工具能提升很大一部分效率....

原文地址:https://www.cnblogs.com/tyoutetu/p/11951903.html

时间: 2024-10-08 06:08:42

解决maven依赖冲突的相关文章

如何快速的解决Maven依赖冲突

为什么会出现依赖冲突 首先要说明Maven的依赖管理,具体的可以参考这边 Maven学习--依赖管理 这篇文章,maven在依赖冲管理中有一下几个原则. 依赖是使用Maven坐标来定位的,而Maven坐标主要由GAV(groupId, artifactId, version)构成.如果两个相同的依赖包,如果groupId, artifactId, version不同,那么maven也认为这两个是不同的. 依赖会传递,A依赖了B,B依赖了C,那么A的依赖中就会出现B和C. Maven对同一个gro

IDEA 解决 Maven 依赖冲突的高能神器,这一篇够不够?

? 1.何为依赖冲突 Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的.Maven的依赖机制会导致Jar包的冲突.举个例子,现在你的项目中,使用了两个Jar包,分别是A和B.现在A需要依赖另一个Jar包C,B也需要依赖C.但是A依赖的C的版本是1.0,B依赖的C的版本是2.0.这时候,Maven会将这1.0的C和2.0的C都下载到你的项目中,这样你的项目中就存在了不同版本的C,这时Maven会依据依赖路径最短优先原则,来决定使用哪个版本的Jar包,而另一个无用的Jar包则未被使用,

使用maven-shade-plugin插件解决spark依赖冲突问题

依赖冲突:NoSuchMethodError,ClassNotFoundException   当用户应用于Spark本身依赖同一个库时可能会发生依赖冲突,导致程序奔溃.依赖冲突表现为在运行中出现NoSuchMethodError或者ClassNotFoundException的异常或者其他与类加载相关的JVM异常. 此时,若能确定classpath中存在这个包,则错误是因为classpath中存在2个不同版本的jar包了,比如常见的log4j,你在classpath中添加了log4j.jar,

idea 中解决maven 包冲突的问题(maven helper)

日常开发中经常会遇到xxx.class 找不到的异常,但是这个类确实存在我们的项目中,就会感觉很离奇,其实这就是包冲突的问题 冲突问题 比如项目中引用了两个 fastjson.jar的版本,分别为 fastjson:1.2.28 fastjson:1.2.3 我们用到了1.2.28中的某个类, 比如 A类,在版本更新中 1.2.3版本去掉了这个类,然而我们项目中maven 却把1.2.3的 jar 打包进去了,那我们就会报异常,不存在这个 class,但是我们调错误的时候却发现这个类存在,那我们

解决Maven依赖本地仓库eclipse报错的问题

一.应用场景 有时候项目报红色的感叹号错误也是由于项目中没有导入相关jar报导致报错 为了使用maven强大的包依赖管理和项目管理功能,故在项目中使用maven2作为项目建构工具. 但是我的项目在内网构建,为了能使用maven2,只能使用本地仓库依赖策略. 但是,有时候明明本地仓库确确实实存在相应的依赖包,但是在eclipse环境下依然会报错,即:在pom.xml显示错误提示信息. 经过我的实践证明,可以通过如下方式解决. 二.示例讲解 以依赖commons-io-2.0.1为例讲解: 在pom

解决Maven依赖下载不全的问题

背景描述 在日常学习过程中使用Maven构建SpringBoot+SpringCloud服务时,有时会使用非正式版的SpringBoot和SpringCloud(非正式版是指不是最终发布的版本,而是测试版或里程碑版本,例如:2.0.0.BUILD-SNAPSHOT.Finchley.BUILD-SNAPSHOT.2.0.0.M3.Finchley.M2这些都属于非正式版,而像1.5.16.RELEASE这样的RELEASE版本即为正式版),一般在工作中构建微服务都会使用正式版本进行构建,因为正式

Struts2与Spring的Maven依赖冲突

今天在用Maven集成Struts2+Spring+Hibernate时发现只要不在web模块中声明spring-web的依赖,就会报java.lang.NoClassDefFoundError: [Lorg/springframework/context/ApplicationContextInitializer;异常,站点无法启动. 对比了半天发现添加spring-web依赖后打包生成的文件少了一个spring-asm-3.0.5.RELEASE.jar文件,很是纳闷,再仔细看spring-

maven 依赖冲突的问题

如果原始系统的jarA依赖jarB1.0 而新引入的jarC依赖jarB2.0 导致系统启动报错,提示冲突,这时为了保证原始系统的稳定性, 在pom.xml文件中引入jarC时,需要exclude掉jarB2.0 如果原始系统依赖jarA1.0 这时为了使用新的功能需要使用jarA2.0,如果子系统B中使用了jarC1.0依赖A1.0,如果在子系统B中直接使用依赖jarA2.0,肯定会 报冲突,这时需要在pom.xml修改jarC1.0的引入代码,添加exclude掉jarA1.0,然后可以添加

Maven依赖冲突

1.短路优先 A-->B-->C-->X(jar) A-->D-->X(jar) 2.先声明先优先 如果路径长度相同,则谁先声明,先解析谁. pom.xml A B ==>导致最终依赖的c的版本是2.2 A.pom.xml C(2.2) B.pom.xml c(2.5)