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

Sam*_*amP 6 java windows jetbrains-ide amazon-web-services maven

目前我有一个 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以下内容的类时:

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

我目前已通过以下方式移动了 .m2 存储库(我使用的是 Windows 10):

  1. 将 .m2 存储库移动到 c:\
  2. 通过包含以下内容的 inteliJ 创建 settings.xml:
<settings>
  <localRepository>c:/.m2/repository</localRepository>
</settings>
Run Code Online (Sandbox Code Playgroud)

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

Spi*_*ams 3

问题似乎出在通过 pom.xml 文件导入 aws java 库的方式上。我见过执行类似操作的文档和项目:

<dependencies>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.12.1</version>
  </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

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

最好只导入您需要的部分,而不是导入整个 AWS 开发工具包。这里有一些很好的文档。

要一次导入一个 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>
Run Code Online (Sandbox Code Playgroud)

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

  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
  </dependency>
Run Code Online (Sandbox Code Playgroud)