我正在尝试运行dynamodb local进行测试.我按照亚马逊提供的步骤设置它并运行jar本身工作正常(链接到亚马逊的教程这里).但是,本教程不会在您自己的项目中运行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
他们正在使用的所有import语句都会出错.错误是无法找到资源.
我进入他们项目的pom并将以下内容放入我的gradle.build文件中以模拟它.
//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;
TL; DR
有没有人设法让dynamodb本地jar作为gradle项目的一部分执行,或者有一个很好的教程的链接(它不一定是我链接到的教程).
我们有DynamoDB本地使用gradle.以下是您需要添加到gradle.build文件的内容:
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)接下来的两个步骤是棘手的部分.首先将本机文件复制到目录:
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.