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

如何在Gradle子项目中指定与根项目不同版本的Kotlin插件

结论先行

Gradle多项目构建不支持给单个子项目单独指定Kotlin Gradle插件版本。Kotlin插件属于构建期全局加载的组件,在整个构建初始化阶段只会加载一次classpath,子项目单独声明不同版本既不会生效,还会触发类冲突报错。

可落地的解决方法
  • 全局回退Kotlin版本适配compose-jb
    直接把根目录./build.gradle.kts里的Kotlin插件版本改成compose-jb兼容的1.6.x最新稳定版(比如1.6.21),所有子项目统一用这个版本。如果其余子项目没有强依赖Kotlin 1.7.0的专属特性,优先选这个方案,配置成本最低,不会出奇怪的兼容问题。
  • 用复合构建隔离版本冲突
    如果其他子项目必须用Kotlin 1.7.0,就把用compose-jb的模块拆成独立的Gradle工程,和主工程做构建隔离:
    1. 把compose相关代码迁移到独立目录,给这个独立工程单独配置1.6.x版本的Kotlin和对应兼容的compose-jb依赖
    2. 在主工程的settings.gradle.kts里通过includeBuild指令引入这个独立工程
      这种模式下两个工程的构建classpath完全独立,不会出现Kotlin版本冲突,主工程也能正常依赖该compose模块的构建产物。
  • 等官方兼容版本发布
    等compose-jb推出适配Kotlin 1.7.0的正式版本后,直接升级compose-jb依赖即可,不需要调整现有Kotlin版本配置,缺点是需要匹配官方发版节奏,不适合紧急排期的开发场景。

避坑提醒:不要尝试在子项目的buildscript配置里单独声明低版本Kotlin插件的classpath,这种写法覆盖不了根项目已经加载的1.7.0版本插件,运行时还是会用高版本插件加载compose-jb,依旧会抛版本不兼容异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:06:28