文档首页/ 对象存储服务 OBS/ SDK参考/ Java/ 问题定位(Java SDK)/ 依赖缺失和依赖冲突的解决(Java SDK)
更新时间:2026-07-01 GMT+08:00

依赖缺失和依赖冲突的解决(Java SDK)

依赖缺失和依赖冲突是 Java 开发中的常见问题,在使用普通版本Java SDK时,如果在应用编译和运行时报错ClassNotFoundException和 NoClassDefFoundError,可怀疑是否是依赖问题而导致,针对不同情况参照下述步骤进行排查和解决。

背景知识

Java SDK有Bundle版和普通版本,两者比较如下:

比较维度

普通版本

Bundle版

使用场景

普通版本体积小,适用于空间敏感的场景

适用于空间不敏感,依赖冲突难以修复的场景

源代码

Bundle版本与普通版本源代码相同

占用空间

小,只包含SDK自身代码,不内置第三方依赖

大,Bundle 版将所有三方依赖打包并重定向至包内,不再依赖外部三方包,可避免因依赖冲突导致的问题。

Maven配置

1
2
3
4
5
<dependency>
   <groupId>com.huaweicloud</groupId>
   <artifactId>esdk-obs-java</artifactId>
   <version>versionNumber</version>
</dependency>
1
2
3
4
5
<dependency>
   <groupId>com.huaweicloud</groupId>
   <artifactId>esdk-obs-java-bundle</artifactId>
   <version>bundleVersionNumber</version>
</dependency>

解决方法

依赖缺失

最新版 SDK 依赖的三方组件与版本如下:

依赖库名称

版本号

作用

okhttp

4.12.0

发送HTTP请求的组件

okio

3.8.0

okhttp的配套组件

jackson-core

2.15.4

构建和解析JSON的组件

jackson-databind

2.15.4

jackson-core的配套组件

jackson-annotations

2.15.4

jackson-core的配套组件

依赖冲突

当您项目中存在多个版本的 OBS Java SDK 软件包,或多个版本的第三方依赖库时,有可能会产生依赖冲突问题。当存在旧版本 SDK 时,建议您删除旧版本软件包,升级至新版;当存在多个版本的第三方依赖库时,请将产生冲突的三方依赖替换为 SDK 的指定版本。