1

我正在使用 Jenkins CI(单管道作业)将不同的文件推送到 JFrog Artifactory。

对于每个构建,我都会将构建信息发布到 Artifactory。但是每个构建都有相同的模块 ID。

例如:在 Artifactory Repository Browser 中选择任何工件然后转到 Build 选项卡,然后它显示所有构建而不是相应的工件构建信息

所以我想知道如何在将工件信息发布到 Artifactory 的同时修改 Artifact Module ID

4

1 回答 1

1

构建信息和工件存储是不同的机制。构建信息仅与工件相关联,因为您可以定义从构建中生成哪些工件以及哪些工件是构建的依赖项。模块 ID 与构建信息没有关联。模块 ID 由存储工件的存储库布局定义。请参阅此处的 jfrog 文档:https ://www.jfrog.com/confluence/display/RTF/Repository+Layouts

您无法更改模块 ID。Artifactory 根据存储库布局分配模块 ID。这意味着工件的路径对于定义模块 ID 很重要。例如存储库布局

[org]/[module]/[module]_[base_rev].[ext] 将为按照 [org]:[module]:[base_rev] 模式存储的任何工件提供模块 ID。

工件通过工件上的 build.name、build.number 属性和从 .json 文件发布构建信息与构建相关联。.json 必须包含一个部分,表示从构建中生成了哪些工件。

一般来说,听起来您需要确保将每个工件部署到工件中的唯一路径,并设置 build.name 和 build.number 属性。要查看的另一件事是文件哈希。它必须与正在发布的构建信息相匹配。因此,如果文件哈希没有不同,则意味着与之前的构建相比,工件没有变化。

我不知道这会有多大帮助,但是在获取工件和构建时有很多细微差别。您提到使用 Jenkins,您是否考虑过使用 Jenkins Artifactory 插件。虽然我们使用 Bamboo,但它应该为您处理很多这项工作,所以我不太熟悉它的不同之处。

于 2017-10-11T18:31:34.843 回答