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

Jenkins作业报org.eclipse.jgit.FileSnapshot类无法初始化问题如何解决

报错原因定位

你遇到的报错核心是Jenkins的Git客户端插件依赖的Eclipse JGit组件类初始化失败,该问题和工作区内容无关,因此删除工作区无法修复,常见触发场景如下:

  • Jenkins主节点或报错的Agent节点(日志中标记为servername)近期更新过Git相关插件,出现JGit依赖包版本冲突、文件损坏或丢失
  • Agent节点的Java运行环境近期有调整,JDK版本变更、环境变量异常导致JGit依赖的类无法正常加载
  • Agent节点的磁盘权限异常、剩余空间不足,导致JGit读取配置文件时初始化失败

完整修复方案

  • 回滚近期更新的Git相关插件:进入Jenkins插件管理页面,找到Git Plugin、Git Client Plugin,如果是近期更新后出现的故障,直接回滚到上一个稳定运行的版本,重启Jenkins后验证
  • 校验Agent节点环境:登录报错的servername节点,执行java -version确认Java大版本和Jenkins主节点保持一致,同时检查Jenkins运行用户对Agent工作区目录、临时文件目录有读写权限
  • 清理Agent缓存:先断开该Agent与主节点的连接,删除Agent节点上的remoting缓存文件,以及工作目录下plugins/git-client/对应的缓存目录,重新连接Agent后触发作业验证
  • 切换检出方式兜底:如果上述操作均无法解决,可以将作业的Git检出实现从JGit切换为系统原生Git:进入作业配置页 -> 源代码管理 -> Git -> 添加附加行为 -> 选择「高级检出行为」 -> 勾选「使用系统原生Git执行检出」,保存后重新运行作业

原始报错日志

Checking out Revision d8f1e31d509dd85ac6c1d8f87f7402a032d2bba2 (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f d8f1e31d509dd85ac6c1d8f87f7402a032d2bba2 # timeout=10
Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to servername
        at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741)
        [...]
        at hudson.model.Executor.run(Executor.java:428)
java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.jgit.internal.storage.file.FileSnapshot
    at org.eclipse.jgit.storage.file.FileBasedConfig.<init>(FileBasedConfig.java:88)
    [...]
    at java.lang.Thread.run(Thread.java:748)
Caused: java.io.IOException: Remote call on servername failed
    at hudson.remoting.Channel.call(Channel.java:961)
    [...]
    at hudson.model.Executor.run(Executor.java:428)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:18:02