gpt4 book ai didi

java - 在 Maven 中通过安全校验和锁定依赖项

转载 作者:搜寻专家 更新时间:2023-11-01 03:25:10 24 4
gpt4 key购买 nike

当我使用 POM 分发源项目时,我可以使用版本字符串定义依赖项。如果依赖项不在本地存储库中,构建将下载这些依赖项,它甚至会使用同一存储库 (-C) 中的元数据验证这些下载文件的校验和。

然而,构建将从许多公共(public)存储库(和代理)下载这些依赖项,如果我的用户返回未修改的文件,他们将受制于这些公共(public)服务。

我想有一种方法来记录我所有构建依赖项的校验和,并将它们与 POM 一起发送(所以我确信文件没有改变,但我不需要将我的本地存储库的副本发送给构建者) .

有没有 Maven 方法可以做到这一点?与此类似,是否有一种简单的方法来存档我的依赖项(本地存储库的副本以及所有使用的 Artifact 和元数据文件),这样即使中央存储库出现故障或将它们发送给离线客户,我也可以重复我的构建?

(如果可能的话,两者都不需要存储库代理。我知道我可以构建一些东西来做到这一点,我只是想知道 maven 中是否已经有一个基础设施。也许运送一个只包含元数据的本地存储库文件或类似文件?)

注意:我不是在生成的 Artifact 上寻找 createChecksum,而是在锁定所用依赖项的校验和。我找到了一个 maven-create-checksums插件,但没有相应的 validator 。

最佳答案

BitcoinjEnforcerRules ,这似乎是 Maven 的插件 enforcer plugin (没错它是一个插件的插件)。它的工作方式类似于 gradle-witness ,这意味着它将(希望)所有使用的 Artifact 依赖项的校验和与您之前创建的列表进行比较。

虽然总比什么都没有好,但一个理想的解决方案是,如果可以简单地为直接依赖项的 POM 设置校验和(或用于签署 POM 的 openPG key ,以防它是快照 Artifact ),以及那些dependencies 将包含其 Artifact 的校验和,以及其直接依赖项的 POM 的校验和(/openPG key ,如果是快照),等等。请注意,如果使用了校验和,那么它们应该绑定(bind)到特定的 Maven 存储库,因为相同的(不变的,即非快照) Artifact 在不同的存储库中可能具有不同的校验和。

关于java - 在 Maven 中通过安全校验和锁定依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15889370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com