You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven项目调用Google Cloud Storage报NoClassDefFoundError求助

解决java.lang.NoClassDefFoundError: com/google/common/util/concurrent/internal/InternalFutureFailureAccess错误

这个错误是Guava库版本冲突导致的——项目中同时存在多个版本的Guava,旧版本缺少InternalFutureFailureAccess类(该类在Guava 24.0及以上版本中引入)。结合你的pom.xml配置,问题根源和修复方案如下:

问题分析

  1. 重复的Google Compute依赖:pom中包含两个版本的google-api-services-compute,旧版本(v1-rev235-1.25.0)依赖的Guava版本过低,与google-cloud-storage:2.13.0需要的高版本Guava冲突。
  2. AWS SDK内置Guava冲突:aws-java-sdk-bundle:1.11.466内置了旧版Guava,会覆盖项目中其他依赖的高版本Guava。

修复步骤

1. 移除重复的Compute依赖

删除旧版本的google-api-services-compute依赖,仅保留新版本:

<!-- 移除该旧版本依赖 -->
<!--
<dependency>
    <groupId>com.google.apis</groupId>
    <artifactId>google-api-services-compute</artifactId>
    <version>v1-rev235-1.25.0</version>
</dependency>
-->

2. 排除AWS SDK中的Guava依赖

修改aws-java-sdk-bundle依赖,排除内置的Guava,避免版本冲突:

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-bundle</artifactId>
    <version>1.11.466</version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3. 显式添加兼容的Guava依赖

添加与google-cloud-storage:2.13.0兼容的Guava版本(推荐31.1-jre,该版本包含所需的InternalFutureFailureAccess类):

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.1-jre</version>
</dependency>

4. 验证依赖树

执行以下命令查看项目依赖树,确认Guava版本统一:

mvn dependency:tree | grep guava

完成以上步骤后,重新构建项目并运行,NoClassDefFoundError即可解决。

内容的提问来源于stack exchange,提问作者Mahmoud Alsheikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:31:07