【问题标题】:Cannot import dynamodbv2 libraries in java无法在 java 中导入 dynamodbv2 库
【发布时间】:2022-06-22 22:05:34
【问题描述】:

我正在尝试设置一个简单的 Java 应用程序,该应用程序从 Dynamo 数据库表中进行查询,但我遇到了与 dynamodbv2 相关的导入错误。

我已经发布了我的 pom.xmlTest.java,以及我在下面使用的 AWS 文档。

使用的资源

Maven 项目设置: https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup-project-maven.html

查询示例: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.Java.04.html

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>com.telus</groupId>
  <artifactId>aws-standalone</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>aws-standalone</name>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <java.version>1.8</java.version>
    <aws.java.sdk.version>2.16.1</aws.java.sdk.version>
  </properties>

  <dependencyManagement>
    <dependencies>

      <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>bom</artifactId>
        <version>2.17.128</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>dynamodb</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

Test.java

package com.example;

import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;

import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;
import com.amazonaws.services.dynamodbv2.document.Item;
import com.amazonaws.services.dynamodbv2.document.ItemCollection;
import com.amazonaws.services.dynamodbv2.document.Page;
import com.amazonaws.services.dynamodbv2.document.QueryOutcome;
import com.amazonaws.services.dynamodbv2.document.Table;
import com.amazonaws.services.dynamodbv2.document.spec.QuerySpec;
import com.amazonaws.services.dynamodbv2.document.utils.ValueMap;


public class Test
{
    public static void main( String[] args )
    {

        String awsKeyId = "key";
        String awsKeySecret = "secret";

        DynamoDbClient client = DynamoDbClient.builder()
                .region(Region.CA_CENTRAL_1)
                .credentialsProvider(StaticCredentialsProvider.create(
                        AwsBasicCredentials.create(awsKeyId, awsKeySecret)))
                .build();


        DynamoDB dynamoDB = new DynamoDB(client);
        Table table = dynamoDB.getTable("Movies");

        System.out.println(client);
    }
}

【问题讨论】:

    标签: java maven amazon-dynamodb dynamodb-queries


    【解决方案1】:

    您缺少依赖项

            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-dynamodb</artifactId>
            <version>1.12.245</version>
       
    

    如果即使您导入对象也变成红色,您需要将其删除并重新输入。它对我有用。

    【讨论】: