java.lang.IllegalStateException: Error processing condition 架包依赖版本冲突修复
创始人
2024-11-04 06:07:30

springboot项目因为需要加新功能于是引入新加包,然后写好代码启动时候就报错了

(1)引入的新依赖包

      org.springframework.data     spring-data-redis     1.8.6.RELEASE       redis.clients     jedis     2.9.0 

(2)启动报错

java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration.redisTemplate

(3)网上搜解决方案第一个结果是说这是个架包依赖问题,可以通过idea的快捷键查看,但是他没有给出解决方案,以下是他的查看定位错误方法

原因:
jar 包 版本 冲突
解决方法:
查看冲突的 jar 包: 在 pom.xml 中 Ctrl + Alt + Shift + u
红线就代表版本冲突

其实也可以pom.xml中右键,然后Maven,然后show  den啥的也能达到上图效果

他的教程到这里就结束了,完全没写怎么解决,有点管杀不管埋的感觉。可能他觉得都会解决这个问题,问题是我不会啊 然后就再搜解决方案(当然还是感谢他的文档指出错误方向)

他的教程链接

java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigur-CSDN博客

(3)解决方案

那么如何解决呢。 我们回到插件的分析页面。 还是对着冲突点击右键选择Exclude。 此时重新刷新maven,再次进入依赖分析页面,点击Refresh UI。

然后我就发现 Exclude默认是灰色不可用状态,需要安装插件

      3.1装idea插件

              首先我使用的idea工具,可以安装插件maven helper。

             如图点击安装

然后restart重启idea 安装才会生效 如下图

然后:打开依赖分析

这时就会进入到下面这个页面,可以看到左侧列表中已经列出了一些依赖,此时你可以点击Refresh UI用来刷新。

我们拿到最新的检测结果后可以点击左边的依赖,右边框体内会展示出来冲突的情况。
举个栗子,我们选中poi,再看右边框体,显示了poi引入版本是3.10.1,通过编译可以发现easyexcel2.2.6中存在冲突。

这时我们可以对冲突内容点击鼠标右键选择跳转到源码jump to source

这时它跳转到了easyexcel的pom文件中,我们很清晰的查看到了其中依赖的版本

到这里是不是已经找到了根本问题。那么如何解决呢。我们回到插件的分析页面。还是对着冲突点击右键选择Exclude。

此时重新刷新maven,再次进入依赖分析页面,点击Refresh UI。可以看到刚才分析出来的冲突少了一个。
此时我们回到pom编辑页面,可以看到easyexcel依赖中使用了exclusions标签排除了poi依赖,所以冲突解决了。

到这里,使用插件解决冲突的方法就已经完事了。

参照整理地址:

彻底学会maven中依赖冲突解决办法(内附实战项目)_pom强制解决版本依赖冲突-CSDN博客

解决完之后又出现:

The artifact mysql:mysql-connector-java:jar:8.0.33 has been relocated to com.mysql:mysql-connector-j:jar:8.0.33
错误:意思是mysql包换位置了 需要改成最新的Maven仓库位置

只需要将mysql包换成最新的地址即可 最新地址:


    com.mysql
    mysql-connector-j
    8.0.33

参照:

解决maven构建时警告:The artifact xxx has been relocated to xxx_the artifact mysql:mysql-connector-java:jar:8.0.33-CSDN博客

另外:其实最简单的是把报错的那个包地址直接注销掉(只适合不用这个功能时候用这个法子)

比如我的这个报错:

java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration.redisTemplate

直接把后面爆出来的redis包注释掉就能启动了,如下图

希望对你有帮助

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...