【发布时间】:2018-07-16 10:30:06
【问题描述】:
我是 Java 新手(使用 maven),并尝试将 aws sdk for java 与 maven 集成。为简单起见,我使用 Visual 代码,因为它很轻量级(另外,其他 IDE 对我来说非常混乱)。在 Mac OS Sierra 上运行。
到目前为止,我已经完成了以下操作:
1) 我已经有 maven
$mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T03:41:47+11:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.12.6", arch: "x86_64", family: "mac"
2) 创建新的 maven 项目
mvn archetype:generate
-DgroupId=com.domain.javalab
-DartifactId=javalab
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
3) 在 pom.xml 中添加如下依赖
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.271</version>
</dependency>
</dependencies>
4) 创建了下面的测试代码(为了清楚起见,现在只包括包和导入部分)
package com.domain.javalab;
import java.io.File;
import java.io.IOException;
import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.services.s3.model.StorageClass;
... Some Code ...
5) 当我尝试编译代码时,出现“com.amazonaws 包不存在”错误。我知道某些类路径或依赖项在某处丢失可能很愚蠢,但我就是不知道在哪里。
$ javac UploadObjectSingleOperation.java
UploadObjectSingleOperation.java:6: error: package com.amazonaws does not exist
import com.amazonaws.AmazonClientException;
^
UploadObjectSingleOperation.java:7: error: package com.amazonaws does not exist
import com.amazonaws.AmazonServiceException;
^
UploadObjectSingleOperation.java:8: error: package com.amazonaws.auth.profile does not exist
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
^
UploadObjectSingleOperation.java:9: error: package com.amazonaws.services.s3 does not exist
import com.amazonaws.services.s3.AmazonS3;
.
.
运行“mvn 包”会导致构建失败,因为我猜是上述编译错误。
我什至尝试执行以下操作以将依赖项 jar 复制到本地目标/依赖项文件夹。
$mvn dependency:copy-dependencies
现在我在主 maven 存储库(在用户主目录中的 .m2/repository/ 下)和本地项目目录中的目标/依赖项下都有 aws-sdk jar 文件。
我仍在尝试找出正确的方法。在我搜索的所有地方,似乎在 pom.xml 中添加依赖项都可以解决问题。还是我遗漏了什么,或者乱序了?
EDIT:使用版本 1.11.271 编辑问题。
在下面添加 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>
<groupId>com.domain.javalab</groupId>
<artifactId>javalab</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>javalab</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.271</version>
</dependency>
</dependencies>
</project>
【问题讨论】: