首页 > 解决方案 > 无法使用文件规范中具有“build”属性的工件插件或 jfrog cli 下载最新工件

问题描述

我的人工 [通用] 回购结构是这样的:

org/component/baseRev/branch/

在 jenkins 中运行的构建作业会生成一个 zip 工件,该工件使用带有文件名的工件插件上传到此路径:component-fileItegRev.zip,其中 fileItegRev 是构建号。所以我最终在我的回购中得到了这样的东西:

.../branch/
.....component-120.zip
.....component-121.zip
.....component-122.zip
.....component-123.zip

然后,另一个管道尝试使用 jenkins 中的 artifactory 插件和如下文件规范从上述文件夹下载最新的工件:

{
    "files": [
        {
            "pattern": "org/component/baseRev/branch/",
            "target": "Download\\",
            "build": "buildName",
            "explode": "true",
            "flat" : "true"
        }
        ]
    }

Artifactory 中的文件规范文档指出,如果我指定没有构建号的构建名称,那么最新的将用于提取工件。这没有发生。

我验证了如果我以以下形式指定构建属性:

"build": "buildName/123"

它会在文件名中找到并下载该版本的 zip。我也尝试明确指定

"build": "buildName/LATEST"

这也行不通。我究竟做错了什么?

我还尝试使用此规范文件使用 jfrog cli 下载命令,但也找不到最新的。我能够使用 jfrog cli 找到最新文件

"sortBy": ["created"],
"sortOrder": "desc",
"limit": 1

规范中的参数(如此处所述),但我仍然想知道为什么文件规范的“构建”属性不像他们的文档中描述的那样工作。

标签: jenkinscommand-line-interfaceartifactoryspecifications

解决方案


以防万一其他人遇到这种情况。我们发现文件规范中的构建属性一直正常工作。问题是,当我们尝试将分支构建发布到 Artifactory 时,它的构建信息在此过程中被破坏了。一旦我们清除了 Artifactory 中此分支的所有构建信息并重新构建,我们就可以使用build_name/LATEST选项提取最新的构建。


推荐阅读