如何将项目级build.gradle从Gradle Groovy迁移至Kotlin DSL
项目级 build.gradle 从 Groovy 转 Kotlin DSL 修正指南
报错原因
你碰到的这个错误是因为Groovy和Kotlin DSL在plugins块的语法规则不一样:Groovy允许在id()的括号里直接写version参数,但Kotlin DSL要求version作为单独的函数调用,不能塞进id()的括号里,导致了类型不匹配的问题。
修正后的完整代码
// 替代原buildscript.ext的全局变量定义 val compose_version by extra("1.1.1") // 项目级通用插件配置 plugins { id("com.android.application") version "7.3.1" apply false id("com.android.library") version "7.3.1" apply false id("org.jetbrains.kotlin.android") version "1.6.10" apply false }
核心修改点
- 全局变量替换:原来Groovy里的
buildscript.ext块,在Kotlin DSL里用val 变量名 by extra("值")来定义全局变量,子模块里可以通过rootProject.extra["compose_version"]或者同样的by extra方式引用这个值。 - plugins块语法调整:把原Groovy中
id("xxx" version "xxx")的写法拆成id("xxx") version "xxx",这是Kotlin DSL规定的插件依赖写法,符合语法要求。
内容的提问来源于stack exchange,提问作者wbk727
相关产品推荐
相关产品推荐

