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

Gradle 8.1.1构建buildSrc时Kotlin DSL编译失败求助

Gradle多模块Java项目Kotlin编译错误问题

项目环境与配置

  • Gradle版本:8.1.1,采用Kotlin DSL(IDE支持更友好)
  • JDK适配:优先使用JDK17,兼容JDK1.8
  • 本地Kotlin版本:1.7.0,但Kotlin DSL自动使用1.8.10
  • 项目类型:多模块Java项目,在Git Bash和IntelliJ CE 2022.3中构建均触发错误

buildSrc约定插件配置

plugins {
    `java`
}

/buildSrc/build.gradle.kts配置

plugins {
    `kotlin-dsl`
}

java {
    withJavadocJar()
    withSourcesJar()
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(17))
    }
}

// 显式设置Kotlin编译目标
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
    kotlinOptions {
        jvmTarget = "17"
    }
}

错误现象

构建时触发无法连接Kotlin编译守护进程的提示,回退到无守护进程编译模式后,出现kotlin/jvm/internal/Intrinsics类找不到的异常。

已尝试的解决措施

  • 手动停止Gradle守护进程
  • 删除~/.gradle/caches和~/.gradle/daemon目录
  • 在~/.gradle/gradle.properties中关闭守护进程,分别使用/不使用wrapper运行构建
  • 在IntelliJ中执行「失效缓存并重启」,修复IDE配置
  • 添加/移除JVM toolchain和kotlinJvmTarget相关配置
  • 修改Gradle JVM版本,保持JDK toolchain版本不变
  • 设置kotlin.daemon.useFallbackStrategy为true/false
  • 设置kotlin.stdlib.default.dependency为true/false

补充信息

  • 其他同事克隆仓库后也出现完全相同的错误
  • 项目配置了mavenLocal()用于加载本地依赖
  • 受公司防火墙限制,无法通过Gradle init脚本初始化项目,采用手动迁移方式搭建

后续尝试操作

  • 参考Kotlin文档将Gradle版本降级至8.0.2以下,问题未得到改善;在/settings.gradle.kts和/buildSrc/settings.gradle.kts中添加插件id("org.gradle.toolchains.foojay-resolver-convention") version("0.5.0")后构建成功,但出现类加载器作用域锁定错误
  • 执行--scan命令分析构建,仍在编译阶段触发报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:15:29