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

如何在项目级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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:22:24