如何在项目级build.gradle.kts中声明额外属性及转写依赖版本配置?
如何在项目级build.gradle.kts文件中声明额外属性?
在Kotlin DSL中声明项目级额外属性主要有两种常用方式:
直接通过
extra属性声明:
你可以在项目根脚本的任意位置(包括buildscript块内)使用extra添加键值对,这些属性可在当前脚本或子模块中引用。示例:// 在根脚本全局声明 extra["compose_version"] = "1.5.3" extra["lifecycle_version"] = "2.5.1" // 在buildscript块内声明(适用于需要在buildscript依赖中引用的版本) buildscript { extra["room_version"] = "2.5.2" }若要实现类型安全的引用,可定义扩展属性:
val Project.composeVersion get() = extra["compose_version"] as String之后就能用
project.composeVersion或者直接composeVersion(在脚本内)来引用。使用版本目录(Version Catalog,推荐):
对于依赖版本这类属性,Gradle官方推荐用版本目录集中管理,更易维护且类型安全。只需在gradle/libs.versions.toml文件中定义:[versions] compose = "1.5.3" lifecycle = "2.5.1" room = "2.5.2"之后在脚本中可通过
libs.versions.compose.get()直接引用版本号。
Groovy代码转Kotlin DSL的正确写法
原Groovy代码:
buildscript { ext { compose_version = '1.5.3' lifecycle_version = '2.5.1' room_version = '2.5.2' } }
对应的Kotlin DSL写法有两种等价形式:
方式1:使用extra.apply批量设置
buildscript { extra.apply { set("compose_version", "1.5.3") set("lifecycle_version", "2.5.1") set("room_version", "2.5.2") } }
方式2:单独赋值(更简洁)
buildscript { extra["compose_version"] = "1.5.3" extra["lifecycle_version"] = "2.5.1" extra["room_version"] = "2.5.2" }
注意:如果你的Gradle版本≥7.0,更建议使用版本目录(上文提到的
libs.versions.toml)来管理依赖版本,这是官方主推的现代化方案。
内容的提问来源于stack exchange,提问作者Camilo Ruiz
相关产品推荐
相关产品推荐

