为何Jenkins上传到JFrog Artifactory的构件未在Builds列表显示
问题原因
仅上传构件到Artifactory不会自动生成Build记录,必须主动将Jenkins构建的完整元数据(Build Info)推送到Artifactory,才会在Artifactory -> Builds路径下生成对应构建条目。哪怕构件本身已携带build.name和build.number属性,缺少单独的Build Info推送步骤,Artifactory也不会识别出对应构建,下载时指定build参数就会抛出「构建名称nameOfMyJenkinsJob不存在」的错误。
修正后的Pipeline代码
def server = Artifactory.server "jfrog1" // 初始化BuildInfo对象,用于收集构建元数据 def buildInfo = Artifactory.newBuildInfo() sh "touch uploadconfig.json" writeFile(file: "uploadconfig.json", text: "{ \"files\": [ { \"pattern\": \"./uploadconfig.json\", \"target\": \"test-generic-local/uploadconfig1.json\", \"flat\" : \"true\" }]}") uploadSpec = readFile 'uploadconfig.json' // 上传构件时关联BuildInfo,将上传的构件和当前构建绑定 uploadInfo = server.upload spec: uploadSpec, buildInfo: buildInfo // 核心缺失步骤:将收集好的BuildInfo发布到Artifactory,生成对应Build记录 server.publishBuildInfo buildInfo
功能验证
- 执行修改后的Pipeline完成构建,进入Artifactory的Builds页面,即可看到对应Jenkins任务名的构建记录
- 原有的下载配置无需修改,即可正常拉取指定构建的最新构件
内容的提问来源于stack exchange,提问作者Fabian W.
相关产品推荐
相关产品推荐

