gpt4 book ai didi

java - 作为 Gradle Java 项目的一部分在本地运行 Dynamodb

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:29:03 26 4
gpt4 key购买 nike

我正在尝试在本地运行 DynamoDB 以进行测试。我按照亚马逊提供的步骤设置它并运行 jar 本身工作正常(链接到亚马逊的教程 Here )。但是,本教程不会在您自己的项目中运行 jar。我不希望所有其他开发人员每次测试代码时都必须抓起一个 jar 并在本地运行它。

这就是我的问题所在。我真的很难在网上找到任何关于如何配置 Gradle 项目以运行 DynamoDB 本地服务器作为测试的一部分的示例。我找到了以下 Maven 示例 https://github.com/awslabs/aws-dynamodb-examples/blob/master/src/test/java/com/amazonaws/services/dynamodbv2/DynamoDBLocalFixture.java#L32并尝试将其转换为 Gradle,但在他们使用的所有 com.amazonaws.services.dynamodbv2.local 导入语句中出现错误。错误是找不到资源。

我进入了他们项目的 pom,并将以下内容放入我的 build.gradle 文件中以进行模拟。

//dynamodb local dependencies
testCompile('com.amazonaws:aws-java-sdk-dynamodb:1.10.42')
testCompile('com.amazonaws:aws-java-sdk-cloudwatch:1.10.42')
testCompile('com.amazonaws:aws-java-sdk:1.3.0')
testCompile('com.amazonaws:amazon-kinesis-client:1.6.1')
testCompile('com.amazonaws:amazon-kinesis-connectors:1.1.1')
testCompile('com.amazonaws:dynamodb-streams-kinesis-adapter:1.0.2')
testCompile('com.amazonaws:DynamoDBLocal:1.10.5.1')

导入语句仍然失败。这是一个失败的例子。

import com.amazonaws.services.dynamodbv2.local.embedded.DynamoDBEmbedded;

长话短说

有没有人设法让 DynamoDB 本地 JAR 作为 Gradle 项目的一部分执行,或者有一个好的教程的链接(不一定是我链接到的教程)。

最佳答案

我们有本地的 DynamoDB 与 gradle 一起工作。以下是您需要添加到 gradle.build 文件中的内容:

适用于gradle 4.x及以下版本

1) 添加到存储库部分:

    maven {
url 'http://dynamodb-local.s3-website-us-west-2.amazonaws.com/release'
}

2) 添加到依赖项部分(假设您将其用于测试):

    testCompile group: 'com.amazonaws', name: 'DynamoDBLocal', version: 1.11.0

3) 接下来的两个步骤是棘手的部分。首先将 native 文件复制到一个目录:

task copyNativeDeps(type: Copy) {
from (configurations.testCompile) {
include "*.dylib"
include "*.so"
include "*.dll"
}
into 'build/libs'
}

4) 然后确保在 java 库路径中包含此目录(在我们的例子中为 build/libs),如下所示:

test.dependsOn copyNativeDeps
test.doFirst {
systemProperty "java.library.path", 'build/libs'
}

现在您应该能够运行 ./gradlew test 并让您的测试命中本地 DynamoDB。

关于java - 作为 Gradle Java 项目的一部分在本地运行 Dynamodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34401039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com