0

我正在使用Jenkins CI(单个管道作业)将不同的文件推送到JFrog Artifactory。如何更新工件构建模块ID

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

例如:在Artifactory的资源库浏览器中选择任何神器然后去建立标签,则显示所有建立的,而不是各自的神器打造信息

所以我想知道如何修改神器模块ID,而将工件信息发布到Artifactory

+0

到目前为止您尝试过什么? –

+0

将Artifacts上传到Artifactory后,我们将获得构建信息对象。稍后我们会将该构建信息发布到Artifactory。在这两个步骤之间,我试图更新构建信息对象。 –

+0

你怎么上传,mvn? gradle? –

回答

0

构建信息和工件存储对于不同的机制。构建信息只与工件相关联,因为您可以定义构建产生的构件以及构件的依赖关系。模块ID与构建信息无关。模块ID由存储工件的存储库布局定义。请参阅jfrog文档:https://www.jfrog.com/confluence/display/RTF/Repository+Layouts

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

[org]/[module]/[module] _ [base_rev]。[ext]将模块ID赋予该模式之后存储的任何工件,如[org]:[module]:[ base_rev。

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

一般来说,听起来好像您需要确保每个工件正在部署到artifactory中的唯一路径,同时设置build.name和build.number属性。另一件要看的是文件散列。它必须在正在发布的构建信息中匹配。因此,如果文件哈希值不相同,则意味着不会更改以前版本中的工件。

我不知道这会有多大的帮助,但是有很多细微之处可以让人工制品和建筑物排队。你提到使用Jenkins,你有没有使用Jenkins Artifactory插件进行研究。虽然我们使用Bamboo,但它应该为您处理很多这项工作,所以我不太了解它的不同之处。

+0

模块ID由存储库布局定义。似乎它不是真的。因为我在里面使用Maven仓库我有两个不同的文件夹,一个是Java工件,另一个是一般文件。我为每个Java工件获取不同的模块ID,但不是用于同一存储库中的常规文件。 –