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

Java应用从8升级到21时遇AWS依赖解析错误求助

问题

将Java应用从JDK 8升级到JDK 21后,独立的AWS交互应用运行正常,但整合到待升级的大型项目时出现编译错误:

The type software.amazon.awssdk.awscore.client.builder.AwsClientBuilder cannot be resolved. It is indirectly referenced from required type software.amazon.awssdk.services.s3.S3BaseClientBuilder

开发环境:Eclipse + Maven

触发错误的代码片段:

StaticCredentialsProvider provider = StaticCredentialsProvider.create(creds);

导入语句:

import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.AwsCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;

POM依赖配置:

<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>s3</artifactId>
    <version>2.25.23</version>
</dependency>

module-info.java配置:

requires software.amazon.awssdk.auth;
requires software.amazon.awssdk.regions;
requires software.amazon.awssdk.services.s3;

独立应用无module-info.java文件,推测问题与构建路径或模块配置相关,但不确定具体原因。

解决方案
  • 添加AWS Core模块依赖:错误中提到的AwsClientBuilder属于awssdk-core模块,虽然s3依赖会间接引入该模块,但在模块化项目中需要显式声明依赖。在POM中添加:
    <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>awssdk-core</artifactId>
        <version>2.25.23</version>
    </dependency>
    
  • 更新module-info.java:在模块声明中补充对核心模块的依赖:
    requires software.amazon.awssdk.auth;
    requires software.amazon.awssdk.regions;
    requires software.amazon.awssdk.services.s3;
    requires software.amazon.awssdk.core;
    
  • 刷新依赖并清理项目:在Eclipse中执行Maven > Update Project(勾选强制更新快照/发布版),再执行Project > Clean重新构建项目。
  • 检查模块路径:确认Eclipse构建路径中所有AWS SDK相关模块都已正确识别,无版本冲突或缺失情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:15:08