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

使用Git作为源码管理时保存Jenkins Maven项目报错求助

解决Jenkins保存Git源码管理任务时的序列化异常问题

问题分析

你遇到的InaccessibleObjectException是Java 17模块系统的权限限制导致的——Jenkins的核心或插件代码在未命名模块中尝试访问java.util包的内部API,但Java 17默认关闭了这类跨模块的非公开API访问,最终引发序列化失败。

解决方案

1. 添加JVM参数开放模块访问权限

修改Jenkins启动配置,通过JVM参数放宽模块访问限制:

  • 打开CentOS上Jenkins的配置文件/etc/sysconfig/jenkins
  • 找到JENKINS_JAVA_OPTIONS项,追加以下参数:
    --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED
    
    最终配置示例:
    JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED"
    
  • 重启Jenkins服务生效:
    systemctl restart jenkins
    

2. 升级Git插件到兼容版本

旧版Git插件可能存在Java 17适配问题:

  • 进入Jenkins的插件管理页面
  • 搜索Git plugin,将其升级到适配Jenkins 2.401.1的最新版本(推荐4.12.0及以上,该版本修复了部分Java 17兼容bug)
  • 插件升级完成后重启Jenkins

3. 升级系统Git版本

你当前使用的Git 1.8.3.1版本过旧,可能与新版Jenkins插件存在兼容冲突:

  • 执行以下命令升级Git到2.30+版本:
    yum install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
    yum update git
    
  • 升级完成后,在Jenkins全局工具配置中更新Git的可执行文件路径,指向新版本的Git

4. 创建新任务排查配置异常

如果以上步骤无效,尝试创建全新的Maven任务,仅配置Git源码管理和基础Maven构建步骤,排查旧任务配置是否存在异常

验证

完成操作后,修改任务并保存,检查UI是否正常,同时查看Jenkins日志/var/log/jenkins/jenkins.log,确认InaccessibleObjectException是否消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:57:35