gpt4 book ai didi

用于 SNAPSHOT 和 RELEASE Artifact 的 Maven 不同本地存储库

转载 作者:行者123 更新时间:2023-12-03 21:31:53 24 4
gpt4 key购买 nike

是否可以在 Maven 中为 SNAPSHOT 和 RELEASE Artifact 配置不同的本地存储库?

我问的原因是,我们正在使用 Jenkins 为我们的项目进行持续构建。为了确保在构建开始之前的一致性(如果由于竞争条件从不同的 Jenkins 作业构建相同的 Artifact ,我们可能会遇到困惑的行为),我们为 Jenkins 创建了一个新的本地存储库。

现在的问题是,我们的项目非常庞大,因此对于每个构建,我们都必须从 Nexus 下载大量依赖项,但仔细想想,没有理由每次都下载新的 RELEASE Artifact 。 RELEASE Artifact 不会因构建而改变,例如 Spring 4.5、httpclient 4.0、aspectj 1.8.1 对于一个构建到另一个构建是相同的。

所以实际上为了确保一致性,我们只应该在存储库中没有 SNAPSHOT 依赖项。如果我们可以有两个本地存储库,一个用于 RELEASE Artifact ,另一个用于 SNAPSHOT,那么在每次构建开始之前,我们可以删除 SNAPSHOT 存储库但重新使用本地 RELEASE 存储库,这样可以节省我从 Nexus 下载的千兆字节。

我知道我们可以为远程存储库进行 RELEASE、SNAPSHOT 配置,是否可以为本地存储库进行相同类型的配置?

如果这是不可能的,你将如何解决这个问题。

最佳答案

目前没有办法实现这一点,是的,我同意这种观点。

Jenkins 的 Maven 插件的最新版本允许您指定自定义本地存储库,而无需编辑 settings.xml文件 — 选项就在作业定义屏幕上(在 Advanced 部分,选择 Use private Maven repository )。

所以,我要做的是使用这个选项,并在 Maven 构建步骤之前使用一个脚本删除本地私有(private)存储库中的所有目录,该目录以 -SNAPSHOT 结尾。 .

这很令人反感,但我想不出任何其他方式。

关于用于 SNAPSHOT 和 RELEASE Artifact 的 Maven 不同本地存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41610201/

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