Maven项目编译报错‘software.amazon.awssdk.services.s3不存在’的解决求助
问题:AWS S3 SDK v2编译报错“package software.amazon.awssdk.services.s3 does not exist”
错误信息
编译时触发如下错误:
java: package software.amazon.awssdk.services.s3 does not exist
当前pom.xml配置
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>S3Bucket</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>20</maven.compiler.source> <maven.compiler.target>20</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.15.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> </dependency> </dependencies> </project>
问题代码(CreateBucketExample.java)
package org.example; import software.amazon.awssdk.services.s3.S3Client; public class CreateBucketExample { public static void main(String[] args) { String bucketName = "bucket4example"; S3Client client = S3Client.builder().build(); CreateBucketRequest request = CreateBucketRequest.builder().bucket(bucketName).build(); client.createBucket(request); } }
旧版SDK类似问题
此前使用AWS S3 SDK v1时,也曾遇到过导入失败的问题,示例代码片段:
package aws.example.s3; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.Bucket;
解决建议
1. 强制更新Maven依赖
执行命令mvn clean install -U,强制刷新并下载依赖包,确保software.amazon.awssdk:s3被正确拉取到本地仓库。同时检查IDE的Maven依赖面板,确认该依赖无红色警告。
2. 补充代码缺失的导入
当前代码中CreateBucketRequest未导入,需添加一行导入语句:
import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
3. 适配Java版本兼容性
AWS SDK v2的2.15.0版本发布于2020年,对Java 20的支持有限,建议:
- 将pom.xml中的
maven.compiler.source和maven.compiler.target修改为11或17(SDK v2官方推荐的LTS版本); - 若坚持使用Java 20,升级SDK到支持Java 20的版本(如2.20.0+),修改bom版本:
<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.20.0</version> <type>pom</type> <scope>import</scope> </dependency>
4. 区分SDK v1与v2的依赖和API
- 若使用SDK v1,需引入对应依赖:
注意SDK v1和v2的API完全不兼容,不要混合使用两个版本的包。<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> <version>1.12.500</version> </dependency>
内容的提问来源于stack exchange,提问作者compi3.14159
相关产品推荐
相关产品推荐

