Minio與SpringBoot關於okhttp3的坑

語言: CN / TW / HK

highlight: github theme: cyanosis font: gary


拋磚


今天使用monio做S3儲存時,新增雲伺服器初始化時一直在構建客戶端丟擲異常。

java 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 \ 至此問題解決