【问题标题】:Checksum validation failed in maven due to PART files with Java 11由于 Java 11 的 PART 文件,Maven 中的校验和验证失败
【发布时间】:2020-12-14 17:38:16
【问题描述】:

背景

我正在使用 Java 11.0.3、Maven 3.6.2 和 com.github.seahen.maven-s3-wagon 1.3.1。

我使用 s3 存储桶作为 maven 存储库。我有一个名为 dbclasses 的内部 jar 工件。我使用 mvn source:jar deploydbclasses 部署到 s3 maven 存储库。

我有一个名为 secapps 的不同 maven 项目,它使用 dbclasses 工件。这里是 secapps pom 文件中 s3 bucket 和 artifact 的相关配置

<repositories>
    <repository>
        <id>maven.nuvalence.repo.release</id>
        <url>s3://ec-appdev-mvn-repo/release</url>
    </repository>
    <repository>
        <id>maven.nuvalence.repo.snapshot</id>
        <url>s3://ec-appdev-mvn-repo/snapshot</url>
    </repository>
</repositories>

<build>
    <extensions>
        <extension>
            <groupId>com.github.seahen</groupId>
            <artifactId>maven-s3-wagon</artifactId>
            <version>1.3.1</version>
        </extension>
    </extensions>
</build>

<dependencies>
    <dependency>
        <groupId>edu.excelsior</groupId>
        <artifactId>dbclasses</artifactId>
        <version>0.0.1</version>
    </dependency>
</dependencies>

问题

每当我在 secapps 上运行 mvn clean package 时,它都会引发以下警告

[INFO] Downloading from maven.nuvalence.repo.release: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom
[INFO] Logged in - ec-appdev-mvn-repo
[INFO] Downloading: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom
[INFO] Downloading: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom.sha1
[WARNING] Checksum validation failed, expected  but is 38790b95f185a41908a1767ae2ad2b5bfe436773 from maven.nuvalence.repo.release for s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom
[INFO] Downloading: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom
[INFO] Downloading: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom.sha1
[WARNING] Could not validate integrity of download from s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom: Checksum validation failed, expected  but is 38790b95f185a41908a1767ae2ad2b5bfe436773
[WARNING] Checksum validation failed, expected  but is 38790b95f185a41908a1767ae2ad2b5bfe436773 from maven.nuvalence.repo.release for s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom
[INFO] Downloaded from maven.nuvalence.repo.release: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom (4.7 kB at 2.8 kB/s)
[INFO] Logged off - ec-appdev-mvn-repo

您会注意到它说 校验和验证失败,但应该是 38790b95f185a41908a1767ae2ad2b5bfe436773

换句话说,预期的校验和是 38790b95f185a41908a1767ae2ad2b5bfe436773,但你给了我空白

所以我查看了本地存储库,我看到了以下内容

您会注意到每个文件的以下两件事

  • 对于 pom 和 jar 文件,有一个关联的 .part 文件
  • .part 文件包含所有数据,但非实际文件为空

如果重命名 .part 文件以删除 .partXXXX 一切正常。但由于某种原因,每次我尝试构建它时都会保留 .part 文件并将普通文件保留在 0K

问题

这些 .part 文件是什么?为什么我的普通文件是 0K?我该如何解决这个问题?

尝试

我尝试了很多东西,包括

  • 从我的本地存储库中手动删除依赖项
  • 将依赖重新部署到 s3
  • 将 checksumPolicy 设置为警告
  • 将 updatePolicy 设置为始终

但是,这些似乎都不起作用。有人对此有解决方案吗?来自 Maven 中心的所有其他依赖项都可以正常下拉。 s3 的依赖项都不起作用

【问题讨论】:

    标签: java maven amazon-s3


    【解决方案1】:

    您可以使用最新版本的 seahen s3 wagon 1.3.3,因为以前版本的 seahen wagon 不能与最新的 java 版本一起正常工作。而且您还需要添加合适的依赖项才能正常工作。 将以下 wagon 和依赖项添加到 pom.xml,删除 m2 中所有以前的构建以及 m2 中的 github 文件em> 并尝试重新加载项目。这将解决问题。

    马车

    <extension>
        <groupId>com.github.seahen</groupId>
        <artifactId>maven-s3-wagon</artifactId>
        <version>1.3.3</version>
    </extension>
    

    依赖关系

    <dependency>
        <groupId>com.github.seahen</groupId>
        <artifactId>maven-s3-wagon</artifactId>
        <version>1.3.3</version>
    </dependency>
    

    如需进一步参考,请点击这些链接

    https://github.com/seahen/maven-s3-wagonhttps://mvnrepository.com/artifact/com.github.seahen/maven-s3-wagon/1.3.3

    【讨论】:

      【解决方案2】:

      回答

      看起来 maven-s3-wagon 不能很好地与 Java 11 配合使用。我将 maven-s3-wagon wagon 换成了 aws-maven wagon,它解决了我的问题

      以前的马车

      <extension>
          <groupId>com.github.seahen</groupId>
          <artifactId>maven-s3-wagon</artifactId>
          <version>1.3.1</version>
      </extension>
      

      新旅行车

      <extension>
          <groupId>com.github.platform-team</groupId>
          <artifactId>aws-maven</artifactId>
          <version>6.0.0</version>
      </extension>
      

      【讨论】:

      • 我也尝试过使用 aws-maven wagon。但它并非在所有情况下都有效。它下载工件,但在某些情况下 .jar 丢失。这并没有完成从 s3 的下载
      猜你喜欢
      • 1970-01-01
      • 2012-12-30
      • 2013-11-06
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      相关资源
      最近更新 更多