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

Spring Boot 3.1.5项目报错NoClassDefFoundError: com/google/common/collect/Streams求助

解决ETCD客户端报NoClassDefFoundError: com/google/common/collect/Streams问题

问题本质

这个错误是Guava版本冲突导致的:Spring Boot 3.1.5会通过依赖管理统一控制Guava版本,而你使用的ETCD Java客户端依赖的Guava版本与Spring Boot管控的版本不兼容,最终缺失Streams类。

具体解决步骤

1. 锁定兼容的Guava版本

在pom.xml的dependencyManagement块中直接指定与ETCD客户端匹配的Guava版本,强制覆盖Spring Boot的管控版本。若使用jetcd-core 0.7.x系列版本,可添加如下配置:

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

2. 排查并排除冲突依赖

如果锁定版本后问题仍存在,先通过Maven命令查看依赖树,定位冲突Guava的来源:

mvn dependency:tree | grep guava

找到引入异常Guava版本的依赖后,在对应的依赖块中排除Guava,以ETCD客户端依赖为例:

<dependency>
    <groupId>io.etcd</groupId>
    <artifactId>jetcd-core</artifactId>
    <version>你的ETCD客户端版本</version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3. 确认ETCD客户端版本兼容性

确保使用的ETCD Java客户端支持Java 17和Spring Boot 3.x,推荐使用jetcd-core 0.7.10及以上版本,依赖配置示例:

<dependency>
    <groupId>io.etcd</groupId>
    <artifactId>jetcd-core</artifactId>
    <version>0.7.10</version>
</dependency>

4. 彻底清理重建项目

执行以下命令清理Maven缓存并重新构建项目:

mvn clean install -U

验证方法

  • 检查生成的JAR包或target/classes目录下是否存在com/google/common/collect/Streams.class文件
  • 再次执行mvn dependency:tree | grep guava,确认Guava版本统一为你指定的版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:32:36