JUnit测试中无法导入Amazon AWS SDK类的问题求助
你在编写startUpdateRootEmailAddress方法的JUnit测试时,添加导入语句:
import software.amazon.awssdk.services.account.model.StartPrimaryEmailUpdateRequest;
后出现以下编译错误:
/opt/workspace/core-public/core/service-voice-private/test/unit/java/src/servicevoice/provisioning/aws/impl/AwsProvisioningServiceImplUnitTest.java:84: error: The import software.amazon.awssdk.services.account cannot be resolved
import software.amazon.awssdk.services.account.model.StartPrimaryEmailUpdateRequest;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
解决方案:
添加AWS Account SDK依赖:
该错误核心原因是项目缺少AWS Account服务的SDK依赖,需根据构建工具添加对应依赖:- Maven(在
pom.xml中添加):<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>account</artifactId> <version>${aws.sdk.version}</version> <scope>test</scope> </dependency> - Gradle(在
build.gradle中添加):testImplementation "software.amazon.awssdk:account:${awsSdkVersion}"
注意:
${aws.sdk.version}或${awsSdkVersion}需替换为项目中使用的AWS SDK统一版本号,确保和其他AWS SDK组件版本一致。- Maven(在
刷新依赖并重新构建:
添加依赖后执行以下操作确保依赖加载:- Maven:运行
mvn clean install -DskipTests,或在IDE中手动刷新Maven依赖 - Gradle:运行
gradle clean build --no-build-cache,或在IDE中刷新Gradle项目
- Maven:运行
检查IDE同步状态:
如果使用IDE(如IntelliJ IDEA、Eclipse)运行测试,可能需要手动触发依赖同步,避免IDE未及时识别新添加的依赖。
你的测试代码中同时用到了AccountClient、StartPrimaryEmailUpdateResponse等Account SDK类,添加上述依赖后这些类的导入也会自动生效,测试即可正常编译运行。
内容的提问来源于stack exchange,提问作者Vinanti Kalangutkar

