【发布时间】: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 deploy 将 dbclasses 部署到 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 的依赖项都不起作用
【问题讨论】: