java.lang.IllegalStateException: Error processing condition 架包依赖版本冲突修复

文章讲述了在SpringBoot项目中添加Redis相关依赖包后遇到的启动错误,主要问题在于版本冲突。作者详细介绍了通过Maven插件管理和解决依赖冲突的过程,包括查看冲突、使用exclude排除、更新Maven仓库等步骤。最后还提到处理`Theartifact...relocatedto...`这类错误的方法。
摘要由CSDN通过智能技术生成

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

(1)引入的新依赖包

<!--redis相关 -->
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.8.6.RELEASE</version>
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

(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包换成最新的地址即可 最新地址:

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.0.33</version>
</dependency>
参照:

解决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包注释掉就能启动了,如下图

希望对你有帮助

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值