Java Maven故障:找不到符号
我是Maven和AWS的新手,我真的不知道哪里出了问题,甚至不知道哪里可以得到帮助 文件: Pom.xml:Java Maven故障:找不到符号,java,amazon-web-services,maven,Java,Amazon Web Services,Maven,我是Maven和AWS的新手,我真的不知道哪里出了问题,甚至不知道哪里可以得到帮助 文件: Pom.xml: <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
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<groupId>com.example.myapp</groupId>
<artifactId>myapp</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>myapp</name>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>2.15.15</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.327</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
我只是很困惑。我在干什么?我需要在pom.xml中添加什么?哪里为什么?总的来说,我怎样才能找到答案?这个错误到底意味着什么?谢谢您正在寻找的类
com.amazonaws.services.s3.AmazonS3EncryptionClientV2Builder
是针对s3的V2加密。是的
亚马逊网站
是Aws文档中的一个示例。您正在使用较旧的Aws Java V1库。建议使用AWS SDK for Java V2。由于您是AWS新手,我建议您从这里开始:
完全遵循这个主题,您将运行AmazonS3JavaV2示例。按照以下步骤完成本教程:
- 步骤1:为本教程设置
- 步骤2:创建项目
- 步骤2:步骤3:编写代码
- 步骤4:构建并运行应用程序
现在是关于Maven的下一个问题。Maven是一种简单的方法,可以提取编译Java项目所需的Java库。有关Maven的更多信息(包括POM文件的角色),请参阅本主题:
所有JavaAWS服务示例在Github存储库中都有相应的POM文件。例如,如果要运行Amazon S3 Java V2示例,则需要获取位于以下位置的POM文件依赖项:
同样,如果您想要构建Amazon DynamoDB V2示例,则需要包括位于此处的POM依赖项:
JavaV2 GitHub repo中的每个服务都有一个相应的POM文件,其中包含构建相应AWS服务示例所需的依赖项。通过将这些依赖项添加到POM文件中,您不再需要通过internet查找和下载JAR文件,并手动将它们添加到项目的类路径中
您的错误是因为您正在使用V2 POM依赖项编译V1代码。这是V2:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>2.15.15</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
software.amazon.awssdk
对不起,我还是很困惑。你怎么知道我在编译V1代码?您如何知道您选择的确切行是我需要添加到pom文件中的行?我是否必须从pom.xml中删除任何其他行才能使其立即工作?我真的只是从中添加pom.xml文件中的行吗?我只是想知道,这样我就可以在出现类似问题时修复它们。您在这行代码中显示了V1代码-com.amazonaws.services.s3.AmazonS3EncryptionClientV2Builder。这个包是V1-“com.amazonaws.services.s3”,您的POM使用V2-“software.amazon.awssdk”。您需要做的是使用v2pom依赖项来构建V2客户端代码。我强烈建议您按照这个快速开始来构建一个干净的项目,该项目将编译并运行。您能解释一下您是如何发现这个问题的,以便我将来可以复制这个过程吗?我知道它是S3SDK的一部分。通常,对于任何缺少的类,我只需谷歌classname+maven,比如amazons3encryptionclientv2buildermaven
,这是第一个结果
cannot find symbol
symbol: class AmazonS3EncryptionClientV2Builder
location: package com.amazonaws.services.s3
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.878 s
[INFO] Finished at: 2021-02-04T16:38:20-08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project myapp: Compilation failure
[ERROR] /Users/LukeGarratt/myapp/src/main/java/com/example/myapp/App.java:[23,33] cannot find symbol
[ERROR] symbol: class AmazonS3EncryptionClientV2Builder
[ERROR] location: package com.amazonaws.services.s3
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.948</version>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>2.15.15</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>