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 次 |
| 最近记录: |