【问题标题】:maven cant find aws sdk for javamaven 找不到适用于 java 的 aws sdk
【发布时间】: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>

【问题讨论】:

    标签: java maven aws-sdk


    【解决方案1】:

    我的第一句话是1.11.272 版本不存在。 see here

    【讨论】:

    • 哦,我没注意到。更改为 1.11.271,并运行“mvn dependency:copy-dependencies”。现在依赖文件夹有这个版本。但是,我仍然遇到同样的错误。
    • @Danny 这对我有用! 1 - 看看它是否是一个 maven 项目 2 - 使用 IDE 再次创建你的项目 3 - 尝试做:java -cp target/javalab-1.0-SNAPSHOT.jar com.domain.javalab.App
    • 1) 它是一个 Maven 项目并尝试过 3) 也复制 SNAPSHOT.jar。没有尝试使用另一个 IDE 再次创建项目(尚未)。 Atlast,我最终用 maven 项目安装了 eclipose,它现在按预期工作..
    • @Danny 很高兴知道!
    猜你喜欢
    • 2020-06-12
    • 2019-05-24
    • 2021-02-13
    • 1970-01-01
    • 2021-12-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多