gpt4 book ai didi

kotlin - 从设置中获取 gradle 属性

转载 作者:行者123 更新时间:2023-12-04 16:38:56 36 4
gpt4 key购买 nike

所以我正在尝试将我的应用程序转换为 Kotlin DSL 我面临的问题是访问 gradle.properties 就像我在 groovy 中所做的那样,我正在尝试访问 gradle.properties我的 Prop settings.gradle.kts文件

def propName = 'prop.name.something'
def propDisabled = Boolean.valueOf(properties[propName])
我尝试了几种使用 settings.extra[propName].toBoolean 访问它的方法。似乎应该有更直接的方法来访问这些属性?

最佳答案

访问 gradle.properties 中声明的属性的正确方法在 settings.gradle.kts是通过将其委托(delegate)给 settings目的:

val myProperty: String by settings
请注意,必须指定属性类型 String在这里明确。
这将获得属性 myProperty来自 gradle.properties文件。请注意,如果您在 pluginManagement { ... } 中使用它块,那么属性声明需要放在 pluginManagement { ... }里面也一样,因为此块在脚本中的其他所有内容之前进行评估。
但是,如果属性名称包含 Kotlin 标识符中非法的符号,例如 . ,即使在 backticked identifiers 中也是不允许的,则您无法将其作为委托(delegate)属性访问。从 Gradle 6.7 开始,无法从 Gradle 模型访问这样的属性,但是,鉴于 gradle.properties只是一个 .properties文件,您可以将其读入 Java Properties实例:
val properties = File(rootDir, "gradle.properties").inputStream().use { 
java.util.Properties().apply { load(it) }
}
val propNameSomething = properties.getValue("prop.name.something") as String

关于kotlin - 从设置中获取 gradle 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64644810/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com