如何在具有不同二进制存储库管理器的Maven作业中使用远程Ivy构件

42次阅读
没有评论

问题描述

Alice使用Ant和Ivy将她的构件发布到Ivy存储库中的Artifactory中,而Bob位于防火墙后面,并在Nexus中的Maven存储库中构建Maven构件。在这种情况下,Alice如何向Bob提供她的构件?(同时两者不必对其设置进行大量更改)

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

Bob在他的构建系统中管理访问Alice构件的凭据,并使用Ivy的Maven插件(这意味着所有相关项目的配置工作)。这是一种可行的解决方案,但需要在所有相关项目中进行配置工作。

方案2

Alice使用Ant/Maven任务为发布/部署步骤生成POM文件,并提供一个额外的Maven存储库,因为Artifactory可以支持不同的存储库格式。这对Bob来说是最方便的,尽管Alice需要对所有相关项目进行配置工作,并且将来可能还会有其他使用其他二进制存储库管理器的Bob。

方案3

Bob配置Nexus作为Alice Ivy存储库的代理(据我所知,这在2014年是不可能的)。
根据问题描述,Bob的设置更为严格(需要Maven元数据),而Alice可以提供这些元数据(使用更灵活的Ant),这听起来是最简单的方法。

我建议选择方案2,因为它对Bob来说最方便,Alice只需要对所有相关项目进行配置工作,并且可以支持其他二进制存储库管理器。

请注意,这些解决方案可能需要根据实际情况进行调整和修改。

正文完