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

2023-12-30 19:27:37

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

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

1. 识别是否依赖冲突

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

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

2. 使用 Maven Analyze Dependency?

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

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

 <dependency>
                <groupId>com.xkcoding.justauth</groupId>
                <artifactId>justauth-spring-boot-starter</artifactId>
                <version>${justauth.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>cn.hutool</groupId>
                        <artifactId>hutool-core</artifactId>
                    </exclusion>
                </exclusions>
 </dependency>

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

文章来源:https://blog.csdn.net/yizdream/article/details/135307686
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。