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

添加kotlin-scripting-jvm-host后Gradle buildSrc同步失败求助

可能的原因及排查方案

针对你遇到的COMPILE_INCREMENTAL_WITH_ARTIFACT_TRANSFORM错误,结合移除kotlin-scripting-jvm-host后恢复正常的现象,大概率是以下几种情况:

  • Kotlin版本不兼容:kotlin-scripting-jvm-host依赖的Kotlin核心组件(如stdlib、reflect)版本,和你的项目/buildSrc使用的Kotlin版本不一致。buildSrc作为Gradle构建脚本的编译环境,对Kotlin版本的一致性要求极高,版本错位会直接触发增量编译阶段的artifact transform异常,而且这类错误经常不会输出详细日志。

  • 增量编译机制冲突:脚本宿主依赖本身的类加载逻辑,和Gradle增量编译的artifact transform流程不兼容。kotlin-scripting-jvm-host会修改类加载上下文,干扰Gradle对buildSrc编译产物的增量追踪逻辑,导致无明确提示的编译失败。

  • 类加载隔离被破坏:buildSrc有严格的类加载隔离策略,避免和Gradle自身的类路径冲突。kotlin-scripting-jvm-host引入的传递依赖(比如kotlinx-coroutines、反射类)可能和Gradle内置的依赖重复或版本冲突,打破了隔离机制,触发编译阶段的transform错误。

  • IntelliJ缓存残留:即使你清理了构建缓存,IntelliJ自身的Gradle同步缓存(比如.idea目录下的缓存文件)可能还残留着异常状态,重新添加依赖时旧缓存会干扰同步流程。


实用排查步骤
  1. 强制对齐Kotlin版本:在buildSrc的build.gradle.kts里明确指定kotlin-scripting-jvm-host的版本,和项目根目录使用的Kotlin版本完全一致,同时对齐JDK工具链版本:

    plugins {
        `kotlin-dsl`
    }
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        // 替换成你项目使用的Kotlin版本,比如1.9.20
        implementation("org.jetbrains.kotlin:kotlin-scripting-jvm-host:1.9.20")
    }
    
    kotlin {
        jvmToolchain(17) // 和项目JDK版本保持一致
    }
    
  2. 禁用增量编译获取详细日志:在buildSrc目录下创建gradle.properties,添加以下配置强制全量编译,这样能触发更详细的错误输出:

    org.gradle.caching=false
    org.gradle.configureondemand=false
    org.gradle.daemon=false
    
  3. 检查依赖树找冲突:执行命令./gradlew buildSrc:dependencies,查看kotlin-scripting-jvm-host的传递依赖,重点看是否有和Gradle内置依赖(比如Gradle自带的Kotlin、Groovy组件)重复或版本不一致的项。

  4. 彻底清理缓存重新导入:删除项目根目录的.idea文件夹、build目录以及buildSrc/build目录,然后关闭IntelliJ,重新打开并导入项目,确保所有缓存都被清除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:42:53