Hyp*_*erX 3 kotlin gradle-kotlin-dsl
所以我正在尝试将我的应用程序转换为 Kotlin DSL 我面临的问题是访问 gradle.properties 就像我在 groovy 中所做的那样,我正在尝试gradle.properties
从我的settings.gradle.kts
文件中访问props
def propName = 'prop.name.something'
def propDisabled = Boolean.valueOf(properties[propName])
Run Code Online (Sandbox Code Playgroud)
我尝试了几种使用 settings.extra[propName].toBoolean 访问它的方法。似乎应该有更直接的方法来访问这些属性?
访问 ingradle.properties
中声明的属性的正确方法settings.gradle.kts
是将其委托给settings
对象:
val myProperty: String by settings
Run Code Online (Sandbox Code Playgroud)
请注意,此处必须String
明确指定属性类型。
这将让房地产myProperty
从gradle.properties
文件。请注意,如果您在pluginManagement { ... }
块中使用它,那么属性声明也需要放置在 内pluginManagement { ... }
,因为该块在脚本中的其他所有内容之前进行评估。
但是,如果属性名称包含在 Kotlin 标识符中非法的符号,例如.
,即使在反引号中也是不允许的,那么您不能将其作为委托属性访问。从 Gradle 6.7 开始,无法从 Gradle 模型访问这样的属性,但是,鉴于这gradle.properties
只是一个.properties
文件,您可以将其读入 JavaProperties
实例:
val properties = File(rootDir, "gradle.properties").inputStream().use {
java.util.Properties().apply { load(it) }
}
val propNameSomething = properties.getValue("prop.name.something") as String
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1009 次 |
最近记录: |