将工件从一个 Ivy 存储库发布/复制到另一个存储库

Posted

技术标签:

【中文标题】将工件从一个 Ivy 存储库发布/复制到另一个存储库【英文标题】:Publishing/copying artifacts from one Ivy repository to another one 【发布时间】:2013-10-01 08:14:00 【问题描述】:

我们通过 Jenkins 使用 ant 和 ivy 来进行日常构建。最初,我们希望将我们的工件发布到我们的测试 Ivy 存储库,一旦测试完成,我们希望将相同的工件复制到我们发布的 Ivy 存储库而不重建它们。常春藤或詹金斯有什么任务可以帮助解决这个问题吗?此外,当我们将它们发布到测试存储库时,我们计划使用集成状态,当我们复制到已发布的 Ivy 存储库时,有没有办法可以将状态更改为发布?我们有多个要构建的模块,但只有其中一部分需要移动到已发布的 Ivy 存储库。非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

您可以使用install 任务在存储库之间复制工件。

一个更好的解决方案是使用staging suite Nexus Professional 的一项功能。它通过为每个发布候选者创建一个临时存储库来工作,可以将其提升直到被认为值得发布。其他存储库管理器具有类似的功能,值得考虑而不是自己构建。

【讨论】:

谢谢马克!如果我正在使用安装,在已发布的存储库上安装时,如何将模块的状态从集成更改为发布状态?我们没有资金购买 Nexus :( @tiggertigger 安装任务实际上只是为了镜像工件而设计的。它不支持这个用例。

以上是关于将工件从一个 Ivy 存储库发布/复制到另一个存储库的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Sonatype Nexus 作为 Ivy 依赖项的镜像 [重复]

如何在公共 Maven/Ivy 存储库中搜索特定类?

重新发布 gradle 工件

如何使用 ivy 和 nexus 发布 3rdparty 工件

Maven 范围如何通过 ivy 映射到 ivy 配置

将 docker 映像从一个 AWS ECR 存储库复制到另一个