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

Jenkins流水线报错‘Avoid second fetch’的解决方案咨询

解决Jenkins流水线"Avoid second fetch"错误的方案

针对同一仓库下共享库与Jenkinsfile共存导致的"Avoid second fetch"错误,以下是可行的解决办法:

1. 调整共享库加载参数,禁止二次拉取

修改共享库的加载指令,添加changelog: false参数关闭变更日志拉取,同时明确指定分支,避免重复触发仓库克隆:

@Library('my-lib@branch', changelog: false) _

PipelineCustom{
 branch = "branch"
 mailer = "abc@xyz.com"
}

如果上述参数不生效,可以进一步指定SCM拉取器,复用流水线已有的克隆配置:

library(
  identifier: 'my-lib@branch',
  retriever: modernSCM(
    [$class: 'GitSCMSource',
     remote: '你的仓库URL',
     credentialsId: '对应凭证ID',
     shallowClone: true,
     ignoreOnPushNotifications: true]
  ),
  changelog: false
) _

PipelineCustom{
 branch = "branch"
 mailer = "abc@xyz.com"
}

2. 修改Jenkins流水线的SCM克隆行为

在流水线的SCM配置中,进入「高级克隆行为」,补充以下设置:

  • 勾选Honor refspec on initial clone,并设置refspec为仅拉取当前分支(例如+refs/heads/branch:refs/remotes/origin/branch)
  • 添加Skip tag fetch行为,彻底禁用标签拉取(与你已尝试的「不获取标签」配合强化效果)

3. 调整全局共享库配置

在Jenkins系统配置的「全局共享库」中,找到你的共享库配置:

  • 将「检索方法」设为「从SCM」,在高级选项中勾选「忽略推送通知」
  • 启用「浅克隆」和「不获取标签」,与流水线的SCM配置保持一致

4. 最终方案:将共享库迁移至单独仓库

如果上述所有配置调整都无法解决冲突,将共享库移到独立仓库是最彻底的解决方式。分开后,Jenkins会分别拉取流水线仓库和共享库仓库,不会触发同一仓库的二次拉取检测,从根源避免该错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:52:19