Minio与SpringBoot关于okhttp3的坑

抛砖


今天使用monio做S3存储时,添加云服务器初始化时一直在构建客户端抛出异常。

    MinioClient.builder() //NoClassDefFoundError: Could not initialize class MinioAsyncClient

嗯?为什么会是 NoClassDefFoundError
再次确认依赖,没问题,monio版本也是最新的,况且我也不是用的MinioAsyncClient
好吧,咱来看看源码(不想看过程 可直接拉到最后完璧

追影


image.png
哦,实际上还是构建的一个异步客户端, 那没事了
那我直接用MinioAsyncClient来构建客户端呢 \

好家伙

企业微信截图_16571595618247.png 再去看依赖库看版本

image.png
紧跟着再去minio的依赖pom看看

image.png
这不麻了吗? 这个okhttp33.14.9版本从哪里冒出来的
再来分析一下依赖关系

image.png
版本的确是被更改了,能更改当前项目的包版本那就只有父级的pom了,于是咱继续追~
当我打开父级的spring-boot-dependencies查找时,果然

image.png
这不就离个大谱吗?原来是领头人的版本问题

完璧


终于找到罪魁祸首了,既然这个版本是spring-boot-dependencies声明的,那咱就直接覆盖掉就好
直接在父级POM中的properties中再声明一个与minio一样的版本号即可

image.png
至此问题解决

猜你喜欢

转载自juejin.im/post/7117458669943390245