我现在只想将Java AWS SDK用于S3。 因此,我不想导入整个AWS SDK jar文件,而是只导入用于访问我的S3存储桶的必要软件包(IDE:Netbeans)。
要做到这一点,我读到我应该使用Maven来构建我需要的jar。
我尝试了两种方法,但似乎还没有包含我正在构建的jar中的所有aws-java-sdk-s3依赖项。
第一种方法
1)我从https://github.com/aws/aws-sdk-java
下载了压缩的aws-sdk-java文件夹2)我解压缩到本地文件夹。
3)我在我的控制台中导航到aws-java-sdk-s3(即:pom所在的位置)文件夹,然后输入“mvn clean install”。
虽然这会构建一个jar文件(位于aws-java-sdk-s3/target
),但jar不包含POM文件中指定的依赖项(例如:它不包括我需要的核心包中的BasicAWSCredentials类)。
第二种方法 更改位于aws-java-sdk-master文件夹中的POM文件,以便通过添加以下内容导入BOM并指定我的要求(S3):
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>1.10.67</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
</dependency>
</dependencies>
并删除POM中列出的所有其他依赖项(例如:junit)。
这种方法在构建DynamoDB软件包时失败,我甚至不需要构建它(我想指定它只需要S3)。
有关我做错的建议吗? 也许这里的主要问题是我是Maven的新手。
谢谢
答案 0 :(得分:1)
您可以直接从maven下载您感兴趣的Jar: http://central.maven.org/maven2/com/amazonaws/aws-java-sdk-s3/1.10.66/aws-java-sdk-s3-1.10.66.jar
使用您要使用的sdk版本更新URL,您只需在项目中导入jar,无需重建它
答案 1 :(得分:0)
同样正确地更新你的pom.xml,
<dependencies>
....
<!-- AWS dependencies -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.10.43</version>
</dependency>
....
</dependencies>
答案 2 :(得分:0)
使用Gradle对我来说效果很好。这是API doc建议的我使用的Gradle构建文件。
group 'aws.test'
version '1.0'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:1.0.3.RELEASE"
}
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom 'software.amazon.awssdk:bom:2.0.0-preview-12'
}
}
dependencies {
compile 'software.amazon.awssdk:s3'
testCompile group: 'junit', name: 'junit', version: '4.11'
}