配置 Maven 以在从存储库下载工件和/或构建项目时检查完整性校验和?

问题描述 投票:0回答:4

在某些情况下(例如没有余额),我的互联网提供商会将任何 HTTP 请求重定向到简单的 html 存根。 最近,我的开发机器上的 Maven 缓存被 jar 文件淹没,其中的内容由我的互联网提供商的 html 存根组成。这些 jar 文件在构建过程中没有被注意到,最终作为我的项目工件的一部分部署到 Tomcat。由于 Tomcat 日志中有关损坏的 jar 文件的警告,我注意到了问题。显然,我想将来避免这种情况。

我看到在 Maven 缓存中,有

*.sha1
文件预计包含 jar 文件的完整性校验和。就我而言,这些
*.sha1
也有错误的内容(由 html 存根组成)。

如果 jar 文件内容与完整性校验和不匹配,如何配置 Maven 在工件下载或构建过程中失败?

我使用的Maven版本是

3.3.9

java maven checksum data-integrity
4个回答
8
投票

传递命令行选项

--strict-checksums

https://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-deps-option

-C,--严格校验和

如果校验和不匹配,则构建失败


0
投票

在 Maven

4.0.0-alpha-2
中,如果下载的文件未通过校验和检查,则构建将失败。这曾经是一个警告。

Jira 问题:https://issues.apache.org/jira/browse/MNG-5728


0
投票

如果您使用像 IntelliJ 这样的 IDE,还有一个选项:


0
投票

Maven-lockfile 通过检查所有依赖项(直接依赖项和传递依赖项)的校验和来提供构建完整性。它将锁定文件/依赖固定的概念应用于 Maven。

请参阅 Github 存储库:https://github.com/chains-project/maven-lockfile/

© www.soinside.com 2019 - 2024. All rights reserved.