我们有构建系统,它构建了很多组件。构建的组件通过ivy在artifactory中发布它们的工件。
我想在发布期间为每个组件附加一个额外的元工件,但对于开发人员来说是透明的。此元工件将包含有关构建代理,构建日志,更改日志等的信息。 我可以访问构建代理,所以我可以:
我在常春藤文档中找不到任何信息。但是,我知道常春藤源代码中有类似“options.getExtraArtifacts()”的方法,所以我想有办法。
等待你的建议。
提前致谢!
UPD: 我发现“options.getExtraArtifacts()”服务于"工件" "发布"中的子标签标签: https://ant.apache.org/ivy/history/2.4.0/use/publish.html
答案 0 :(得分:0)
您使用的是Artifactory Pro吗?我自己不是用户,但文档描述了将任意基于XML的元数据附加到Artifactory中存储的任何工件的功能。独立REST API,应该很容易从您的构建中调用:
https://www.jfrog.com/confluence/display/RTF2X/Attaching+and+Reading+Metadata
这种方法的一大优势是这些数据是可搜索的
我再一次不是Artifactory用户,但一直对这个插件很感兴趣,据说这个插件提供了Jenkins和Artifactory之间的紧密集成。相关的位是所谓的"构建信息"这是由插件发布的。如果这并不包含您要查找的一些信息,我会感到惊讶。
https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin
典型的Maven存储库不支持元数据。 Artifactory和Nexus都有定制的扩展,看起来在这两种产品中这个功能都是付费功能......
如果您只想存储元数据并且不关心缺少搜索界面,那么为什么不简单地将包含元数据的文件作为附加模块文件附加?以下示例说明了如何执行此操作:
how to publish 3rdparty artifacts with ivy and nexus
如果您在ivy存储库中存储数据,那么这只是一个选项(您更有可能使用Maven存储库格式)。
Ivy能够在ivy模块文件中存储自定义属性。
http://ant.apache.org/ivy/history/latest-milestone/concept.html#extra
以下答案描述了这些内容如何用于影响常春藤存储库的布局。