Kotlin 从设置中获取渐变属性

Kotlin 从设置中获取渐变属性,kotlin,gradle-kotlin-dsl,Kotlin,Gradle Kotlin Dsl,因此,我正在尝试将我的应用程序转换为Kotlin DSL。我面临的问题是如何访问gradle.properties正如我在groovy中所做的那样,我正在尝试从我的settings.gradle.kts文件访问gradle.properties道具 def propName = 'prop.name.something' def propDisabled = Boolean.valueOf(properties[propName]) 我尝试了几种使用settings.extra[propNam

因此,我正在尝试将我的应用程序转换为Kotlin DSL。我面临的问题是如何访问gradle.properties正如我在groovy中所做的那样,我正在尝试从我的
settings.gradle.kts
文件访问
gradle.properties
道具

def propName = 'prop.name.something'
def propDisabled = Boolean.valueOf(properties[propName])

我尝试了几种使用settings.extra[propName].toBoolean访问它的方法。似乎应该有更直接的方法来访问这些属性?

访问
settings.gradle.kts中
gradle.properties
中声明的属性的正确方法是将其委托给
settings
对象:

val myProperty:按设置设置的字符串
请注意,此处必须明确指定属性类型
String

这将从
gradle.properties
文件中获取属性
myProperty
。请注意,如果您在
pluginManagement{…}
块中使用它,那么属性声明也需要放在
pluginManagement{…}
中,因为此块的计算要先于脚本中的其他所有内容

但是,如果属性名称包含Kotlin标识符中非法的符号,例如
,即使在中也不允许,则您不能将其作为委托属性访问。从Gradle 6.7开始,无法从Gradle模型访问此类属性,但是,鉴于
Gradle.properties
只是一个
.properties
文件,您可以将其读入Java
properties
实例:

val properties=File(rootDir,“gradle.properties”).inputStream()。使用{
java.util.Properties().apply{load(it)}
}
val propNameSomething=properties.getValue(“prop.name.something”)作为字符串