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

GitLab gemnasium-maven v3.11.1依赖扫描失败:不支持类文件版本61

解决GitLab依赖扫描编译失败(Unsupported class file major version 61)问题

问题背景

在自建GitLab v15.7.5服务器上配置依赖扫描,重写stage并引入作业模板指定test阶段后,扫描作业启动即失败。开启SECURE_LOG_LEVEL=debug后,发现错误根源是Gradle初始化脚本编译失败,核心报错:

java.lang.IllegalArgumentException: Unsupported class file major version 61

当前环境使用Java 17(adoptopenjdk-17.0.2+8),扫描器自动选用Gradle 7.1.1执行依赖导出。

原因分析

Class文件版本号61对应Java 17,但Gradle 7.1.1内置的Groovy依赖的ASM库不支持解析Java 17的class文件,导致初始化脚本编译失败。

解决方案

1. 升级项目Gradle版本

Gradle 7.3及以上版本已官方支持Java 17,直接升级项目Gradle版本即可解决兼容问题:
修改项目根目录下gradle/wrapper/gradle-wrapper.properties中的distributionUrl:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip

提交修改后重新触发CI作业,扫描器会使用升级后的Gradle版本执行依赖导出。

2. 指定扫描器使用Java 11

若暂时无法升级Gradle,可通过CI变量强制扫描器切换到Java 11环境:
在项目Settings > CI/CD > Variables中添加变量:

  • 变量名:GRADLE_JAVA_VERSION
  • 变量值:adoptopenjdk-11.0.16+8
    扫描器会使用Java 11运行Gradle,避开Java 17的class版本兼容问题。

3. 优先使用Maven扫描(若项目支持)

如果项目同时存在Maven的pom.xml文件,可通过变量让扫描器优先处理Maven依赖,跳过Gradle扫描:
添加CI变量:

  • 变量名:GEMNASIUM_MAVEN_DEPENDENCY_FILE_PATTERN
  • 变量值:pom.xml
    扫描器会优先识别并处理Maven依赖文件,绕开Gradle的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:32:20