如何在开发人员中透明地为常春藤发布额外的元工件?

时间:2015-04-24 15:03:21

标签: ant ivy artifactory

我们有构建系统,它构建了很多组件。构建的组件通过ivy在artifactory中发布它们的工件。

我想在发布期间为每个组件附加一个额外的元工件,但对于开发人员来说是透明的。此元工件将包含有关构建代理,构建日志,更改日志等的信息。 我可以访问构建代理,所以我可以:

  • 更改构建代理上的一些常春藤配置文件
  • 在构建代理上安装带有补丁的自定义常春藤
  • 修改ivysettings.xml文件

我在常春藤文档中找不到任何信息。但是,我知道常春藤源代码中有类似“options.getExtraArtifacts()”的方法,所以我想有办法。

等待你的建议。

提前致谢!

UPD: 我发现“options.getExtraArtifacts()”服务于"工件" "发布"中的子标签标签: https://ant.apache.org/ivy/history/2.4.0/use/publish.html

1 个答案:

答案 0 :(得分:0)

选项1:Artifactory元数据

您使用的是Artifactory Pro吗?我自己不是用户,但文档描述了将任意基于XML的元数据附加到Artifactory中存储的任何工件的功能。独立REST API,应该很容易从您的构建中调用:

https://www.jfrog.com/confluence/display/RTF2X/Attaching+and+Reading+Metadata

这种方法的一大优势是这些数据是可搜索的

选项2:Jenkins插件

我再一次不是Artifactory用户,但一直对这个插件很感兴趣,据说这个插件提供了Jenkins和Artifactory之间的紧密集成。相关的位是所谓的"构建信息"这是由插件发布的。如果这并不包含您要查找的一些信息,我会感到惊讶。

https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin

选项3:附加自定义元数据文件

典型的Maven存储库不支持元数据。 Artifactory和Nexus都有定制的扩展,看起来在这两种产品中这个功能都是付费功能......

如果您只想存储元数据并且不关心缺少搜索界面,那么为什么不简单地将包含元数据的文件作为附加模块文件附加?以下示例说明了如何执行此操作:

how to publish 3rdparty artifacts with ivy and nexus

选项4:常春藤额外属性

如果您在ivy存储库中存储数据,那么这只是一个选项(您更有可能使用Maven存储库格式)。

Ivy能够在ivy模块文件中存储自定义属性。

http://ant.apache.org/ivy/history/latest-milestone/concept.html#extra

以下答案描述了这些内容如何用于影响常春藤存储库的布局。

Dynamically updating Ivy extra attributes