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

Gradle 8.0升级后Git提交时detekt任务因--jvm-target报错

解决Gradle 8.0升级后Git提交时detekt任务的JVM Target版本错误

升级Gradle到8.0版本后,Git提交前的Gradle自动检查无法正常完成——单独运行单项Gradle检查一切正常,但提交时会触发:util:detekt任务失败,错误提示翻译为中文如下:

执行失败: 任务':util:detekt'执行出错。
传递给--jvm-target的无效值(19),必须是以下值之一: [1.6, 1.8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
尝试:
使用--stacktrace选项获取堆栈跟踪。
使用--info或--debug选项获取更多日志输出。
使用--scan选项获取完整分析信息。

已知这是版本适配问题,但找不到修复位置,且代码在其他电脑上可正常运行。以下是针对性解决方法:

  • 升级detekt插件版本:当前使用的detekt版本不支持JVM 19,需升级到支持JVM 19的版本(比如1.23.0及以上)。在项目根目录的build.gradle或build.gradle.kts中更新插件版本:

    // Groovy语法示例
    plugins {
        id "io.gitlab.arturbosch.detekt" version "1.23.0"
    }
    
    // Kotlin语法示例
    plugins {
        id("io.gitlab.arturbosch.detekt") version "1.23.0"
    }
    
  • 统一项目JVM Target版本:如果暂时不想升级detekt,可在项目的gradle.properties文件中指定项目使用的JVM版本为detekt支持的范围(比如17):

    org.gradle.java.home=/path/to/your/jdk17
    java.version=17
    kotlin.jvmTarget=17
    
  • 检查Git提交钩子配置:提交时触发的Gradle任务可能使用了和单独运行时不同的JVM环境。查看项目的pre-commit钩子脚本,确认是否指定了特定的JDK路径或JVM参数,保证和单独运行时的环境一致。

  • 刷新项目依赖与缓存:在本地执行以下命令,清理缓存并同步最新配置:

    ./gradlew clean build --refresh-dependencies
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:55:23