Java Maven故障:找不到符号

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

我是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 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>