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

Jenkins显示构建成功但未实际运行,出现ClassCastException问题求助

解决Jenkins构建无执行、cleanUpObjectStreamClassCaches抛ClassCastException的问题

问题根源

这个报错是Workflow CPS插件清理ObjectStreamClass缓存时的类转换错误——Java内部的缓存类无法强转为ConcurrentMap,大概率是Jenkins缓存损坏或者JVM类加载器冲突导致的,和你手动构建正常、磁盘充足的情况吻合,确实是Jenkins环境层面的问题。

清除缓存的具体操作

1. 清理Jenkins全局缓存

  • 停止Jenkins服务
  • 找到Jenkins主目录(默认Linux路径为/var/lib/jenkins,Windows路径为C:\Program Files\Jenkins),删除目录下的cache文件夹
  • 顺便删除异常任务对应的workspace子目录,避免残留异常缓存文件
  • 重启Jenkins服务

2. 用脚本清理ObjectStreamClass缓存

  • 进入Jenkins后台的Manage Jenkins > Script Console
  • 复制运行以下Groovy脚本,直接清理目标缓存:
import java.io.ObjectStreamClass
import java.lang.reflect.Field

Field cachesField = ObjectStreamClass.class.getDeclaredField("caches")
cachesField.setAccessible(true)
def caches = cachesField.get(null)
Field localCacheField = caches.getClass().getDeclaredField("localCache")
localCacheField.setAccessible(true)
def localCache = localCacheField.get(caches)
localCache.clear()

println "ObjectStreamClass本地缓存已清除"

3. 重置异常Pipeline任务

  • 打开异常任务的配置页面,找到Pipeline配置板块
  • 如果是从SCM拉取的Jenkinsfile,点击Reload from SCM;非SCM管理的任务直接重新保存配置
  • 手动触发一次构建,观察执行状态

其他修复步骤

  • 更新Workflow相关插件:该ClassCastException问题在旧版本的Workflow CPS插件中存在,更新至2.89及以上的稳定版可修复类加载兼容问题
  • 重启Jenkins代理节点:服务器状态正常不代表代理节点的JVM缓存无异常,重启所有代理节点后再尝试触发构建
  • 检查JVM版本兼容性:确保Jenkins使用的JDK为11或17这类稳定版本,避免使用过新或过旧的JDK版本引发插件兼容问题
  • 清理日志和临时文件:删除Jenkins主目录下logs文件夹中的旧日志,以及tmp目录下的临时文件,减少缓存文件堆积

验证方法

  1. 从Jenkins UI触发构建,检查是否显示构建时长、代理节点是否正常执行任务
  2. 查看Jenkins日志,确认cleanUpObjectStreamClassCaches相关的ClassCastException不再出现
  3. 连续触发多次构建,确保问题不再复现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:52:06