You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jenkins Artifactory插件推广制品时遭遇404错误求助

Hey,我碰到过类似的Jenkins Artifactory推广404问题,给你梳理几个常见的排查方向和解决办法:

1. 核对仓库名称的准确性

Artifactory的仓库名称是区分大小写的,你代码里写的sourceRepo: "dev"和targetRepo: "tst",一定要去Artifactory的仓库管理页面核对,确保和实际存在的仓库名完全一致——别小看拼写错误,比如把test写成tst,或者Dev写成dev,都会直接导致404。

2. 确认Build Name和Build Number是否对应目标构建

你用了${BUILD_NAME}和${BUILD_NUMBER}环境变量,但这是当前推广任务的构建信息啊!如果你的推广任务是独立的,要推广的是另一个Job的构建,那这两个变量就完全不对了。

正确的做法是:要么用参数化构建让用户输入目标构建的名称和编号,要么手动指定,比如:

String buildName = "My-Actual-Build-Job-Name" 
String buildNumber = "123" // 目标构建的编号

3. 检查Artifactory服务器配置与权限

  • 先去Jenkins的全局配置里,核对Artifactory服务器的地址是否正确,比如有没有漏加/artifactory后缀(很多人会在这里踩坑),地址写错直接会导致请求到不存在的路径。
  • 再确认Jenkins连接Artifactory用的账号,有没有推广权限:需要在Artifactory里给这个账号分配源仓库的读取权限、目标仓库的写入权限,以及全局的Promote权限。

4. 补全缺失的推广配置参数

你的代码里includeDepende...明显没写完,这种语法不完整的配置会导致插件生成的请求格式错误,进而返回404。比如要补全includeDependencies参数,同时确保整个配置的括号是闭合的,给你个完整的示例:

stage('promote artifact') { 
  steps { 
    script { 
      String buildName = "My-Target-Build-Job" 
      String buildNumber = "123" 
      def promotionConfig = [ 
        // 必填参数
        'buildName' : buildName, 
        'buildNumber' : buildNumber, 
        'targetRepo' : "tst", 
        // 可选参数
        'comment' : "this is the promotion comment", 
        'sourceRepo' : "dev", 
        'status' : "Released", 
        'includeDependencies' : true, // 补全缺失的参数
        'copy' : false // true=复制制品,false=移动制品
      ] 
      // 记得调用artifactoryPromote执行推广
      artifactoryPromote promotionConfig
    } 
  } 
}

5. 查看日志定位具体原因

如果上面的方法都没解决,就去看日志:

  • 在Jenkins的构建日志里,找到Artifactory插件输出的完整请求URL,看看是不是访问了不存在的仓库或构建路径。
  • 去Artifactory的access.log(一般在$ARTIFACTORY_HOME/logs/目录下)里找对应的404请求,日志会明确告诉你是仓库不存在、构建记录不存在,还是权限不足。

内容的提问来源于stack exchange,提问作者Risha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:19:25