编程羔手解决Maven引入多个版本的依赖包,导致包冲突了

编程羔手解决Maven引入多个版本的依赖包,导致包冲突了_第1张图片

最近升级了些依赖发现有个hutool的方法老报错,
java.lang.NoSuchMethodError: cn.hutool.core.util.ObjectUtil.defaultIfNull(Ljava/lang/Object;Ljava/util/function/Supplier;)

在 Maven 项目中,当不同的依赖模块引入 Hutool 的不同版本时,可能会导致冲突和运行时错误。为了解决这个问题,你可以采取以下步骤:

1. 识别是否依赖冲突

首先,先看看这个方法调用的是哪个包的方法。以下只是个举例。

编程羔手解决Maven引入多个版本的依赖包,导致包冲突了_第2张图片

如果不是最新版是旧版就很有可能冲突,或者你直接看Exteranl Libraries

编程羔手解决Maven引入多个版本的依赖包,导致包冲突了_第3张图片

2. 使用 Maven Analyze Dependency 

编程羔手解决Maven引入多个版本的依赖包,导致包冲突了_第4张图片

3. 使用 排除冲突的 Hutool 依赖

在项目的 pom.xml 文件中,对引起冲突的 Hutool 依赖使用 标签排除。例如以上图中的justauth的包,引用了旧的hutool的包。把它排除,并刷新maven重新引入,就可以解决。

 
                com.xkcoding.justauth
                justauth-spring-boot-starter
                ${justauth.version}
                
                    
                        cn.hutool
                        hutool-core
                    
                
 

确保将冲突的 Hutool 依赖在每个模块的依赖中排除,这样可以防止模块间的版本冲突。

你可能感兴趣的:(编程羔手,java,前端,数据库)