ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

2026-03-16 如何清除Jenkins缓存(deepseek)

2026/8/5 7:54:52 拓冰建站 浏览量
2026-03-16 如何清除Jenkins缓存(deepseek)

看到这个情况,我明白了!Jenkins 的 pipeline 缓存问题非常顽固。即使你更新了 Jenkinsfile,它还在使用旧的缓存版本。

🚨 问题根源

Jenkins 在第一次解析 pipeline 后,会把解析结果缓存起来。即使 Jenkinsfile 内容变了,这个缓存可能还在使用旧的定义。

✅ 彻底解决方案

方法一:在 Jenkins 中删除分支并重新扫描(最有效)

# 1. 登录到 Jenkins 服务器
ssh root@你的服务器IP# 2. 进入 Jenkins 工作目录
cd /var/lib/jenkins# 3. 直接删除 uat 分支的所有相关文件
sudo rm -rf jobs/iuniko/branches/uat/
sudo rm -rf workspace/iuniko_uat/
sudo rm -rf caches/git-f34eceb7974ebd40ca767301ee764fda/# 4. 重启 Jenkins
sudo systemctl restart jenkins# 5. 等待 Jenkins 启动
sleep 30

方法二:在 Web 界面操作

  1. 删除 uat 分支任务

    • 进入 iuniko 任务主页
    • 点击 "Branches" 标签
    • 找到 uat 分支
    • 点击右侧的 "Delete branch"(垃圾桶图标)
  2. 清理工作空间

    • 进入 iuniko 任务
    • 点击左侧 "Workspace"
    • 如果有 uat 相关的工作空间,清理掉
  3. 重新扫描仓库

    • 点击主任务的 "Scan Repository Now"

方法三:在 Jenkins 脚本命令行中强制清理

  1. 访问 http://你的服务器IP:8080/script
  2. 输入以下命令并运行:
// 强制清理所有分支缓存
def job = Jenkins.instance.getItemByFullName("iuniko")
if (job) {// 删除所有分支的构建记录job.getItems().each { branch ->println "清理分支: ${branch.name}"branch.getBuilds().each { it.delete() }branch.delete()}println "所有分支已清理"
}// 清理工作空间
def wsDirs = ["iuniko_sit", "iuniko_uat", "iuniko_prd", "iuniko_master"]
wsDirs.each { dir ->def ws = Jenkins.instance.getWorkspaceFor(dir)if (ws) {ws.deleteRecursive()println "已清理: ${dir}"}
}// 重新加载
Jenkins.instance.reload()
println "完成!请重新扫描仓库"

方法四:最简单的终极方案

直接在 Jenkins 中重命名任务,强制创建全新的任务:

  1. 进入 Jenkins 主页
  2. 点击 "New Item"
  3. 输入新名称,比如 arco-demo-pipeline
  4. 选择 "Multibranch Pipeline"
  5. 配置完全相同的 Git 仓库地址
  6. 保存后,它会完全重新扫描,不受旧缓存影响

📝 优先尝试方法二

建议先试试方法二(Web界面删除分支),这是最简单的:

  1. 在 Jenkins 中找到 iuniko 任务
  2. 点击 "Branches"
  3. 找到 uat 分支,点击删除
  4. 然后点击主任务的 "Scan Repository Now"

这样 Jenkins 会重新从 Git 仓库获取最新的 Jenkinsfile,应该就能用正确的 nodejs 'Node18' 配置了。

如果还不行,就用方法一在服务器上直接删除文件。