添加 aws-java-sdk 依赖项后 Maven 错误“206 文件名或扩展名太长”

Maven error '206 the filename or extension is too long' after adding aws-java-sdk dependency

目前我有一个 Maven 项目,在 pom.xml 文件中添加以下依赖项:https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk 后,我似乎看到以下异常:CreateProcess error=206, The filename or extension is too long

当执行包含 public static void main 的 class 时:

public class Connection_Test {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

我目前已通过以下方式移动 .m2 存储库(我正在使用 windows 10):

  1. Move .m2 repository to c:\
  2. Create a settings.xml via inteliJ containing the following:
<settings>
  <localRepository>c:/.m2/repository</localRepository>
</settings>

即使进行了上述设置/更改,我仍然遇到同样的问题,不确定为什么在添加 aws-java-sdk 依赖项后我似乎 运行 进入问题,有什么想法吗?

问题似乎在于通过 pom.xml 文件导入 aws java 库的方式。我见过做这样的事情的文档和项目:

<dependencies>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.12.1</version>
  </dependency>
</dependencies>

但是,现在 aws-java-sdk 下的子项目似乎太多了,将它们全部列出会破坏 Windows 10 上的最大长度类路径。

与其导入整个 AWS SDK,不如只导入您需要的部分。 here.

有一些很好的文档

要一次导入一个 SDK 组件,您需要先在 pom.xml 文件的 DependencyManagement 部分启用 aws-java-sdk-bom(物料清单)。像这样:

<dependencyManagement>   
  <dependencies>
     <dependency>
       <groupId>com.amazonaws</groupId>
       <artifactId>aws-java-sdk-bom</artifactId>
       <version>1.12.1</version>
       <type>pom</type>
       <scope>import</scope>
     </dependency>   
  </dependencies> 
</dependencyManagement>

然后,要引入 S3,您必须将 aws-java-sdk-s3 列为它自己的依赖项。

  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
  </dependency>