SpringBoot项目引入MinIO 8.5.2后,那个让人头疼的OkHttp和Kotlin版本冲突,我是这样一步步排查解决的

SpringBoot整合MinIO时OkHttp与Kotlin版本冲突的深度排查指南

那天下午,当我将MinIO 8.5.2引入SpringBoot项目后,控制台突然抛出一连串令人困惑的堆栈信息。作为一名有三年经验的Java开发者,我本以为这只是又一个简单的依赖冲突问题,没想到却开启了一场持续6小时的"侦探之旅"。本文将完整还原这次排查过程,不仅分享最终解决方案,更重要的是展示如何系统性地分析和解决这类复杂的依赖冲突问题。

1. 初识异常:从错误堆栈开始的困惑

项目引入MinIO依赖后,启动时立即抛出以下关键异常:

Caused by: java.lang.RuntimeException: Unsupported OkHttp library found. Must use okhttp >= 4.8.1
    at io.minio.S3Base.<clinit>(S3Base.java:106)
...
Caused by: java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B
    at okio.Segment.writeTo(Segment.kt:169)

第一反应是查看MinIO官方文档,确认其要求的OkHttp最低版本确实是4.8.1。于是检查项目中现有的OkHttp版本:

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.14.9</version>
</dependency>

显然,3.14.9远低于要求版本。于是立即升级到4.8.1,但令人意外的是,同样的错误依然存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值