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

Gerrit从3.2.3升级到3.4.1启动报错NoClassDefFoundError:ChangeKeyAdapter

根因说明

该错误是Gerrit跨版本升级后,第三方插件与3.4.1核心版本不兼容导致的:com.google.gerrit.server.change.ChangeKeyAdapter是3.3版本后核心代码重构时移除的类,仍在使用的旧版本第三方插件会调用该类触发类加载异常。

解决步骤

  • 先停止Gerrit服务,进入站点的插件目录:
    cd ${MY-GerritSite}/plugins
    
  • 备份并移除所有非官方自带的第三方插件,避免直接删除导致配置丢失:
    mkdir ~/gerrit_plugins_backup && mv *.jar ~/gerrit_plugins_backup/
    
  • 重新执行3.4.1版本的初始化命令,确保官方核心依赖、自带插件都更新到匹配版本:
    java -jar gerrit.3.4.1.jar init -d ${MY-GerritSite} --batch
    
  • 测试启动Gerrit:
    bash gerrit.sh run
    
    若启动成功,再逐个下载与3.4.1版本严格匹配的第三方插件放回plugins目录,每次添加一个插件后重启验证无异常,再添加下一个。

额外排查点

  • 若执行上述步骤后仍报错,检查站点目录下的lib文件夹是否被手动修改过,备份后删除整个lib目录,重新执行init命令自动重建核心依赖库。
  • 确认运行环境的Java版本为Java 11,Gerrit 3.4.1不支持Java 8、Java 17及以上版本,版本不符也会触发类加载异常。
  • 检查etc/gerrit.config中是否存在已废弃的日志模块、自定义插件相关配置,先注释相关配置项后再启动测试。

内容的提问来源于stack exchange,提问作者B.Kingsun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:54:04