【问题标题】:How to refer to gradle configuration set in gradle.properties with Kotlin DSL?如何使用 Kotlin DSL 引用 gradle.properties 中设置的 gradle 配置?
【发布时间】:2020-11-09 23:04:23
【问题描述】:

我正在尝试采用 Kotlin Gradle DSL。我有一个gradle.properties,其中包括:

slf4jVersion=2.0.0-alpha1

我在build.gradle.kts 中声明了依赖关系:

implementation( name = "slf4j-api",
  group = "org.slf4j", version = project.properties["slf4jVersion"].toString())

是的,它有效,但它也有气味。问题是project.properties["slf4jVersion"].toString()的丑陋

我不应该只写slf4jVersion吗?它使标准配置看起来像自定义黑客。使用 Kotlin Gradle DSL 将版本号保存在一个单独的文件中的规范且简洁的方法是什么?

【问题讨论】:

    标签: gradle-kotlin-dsl gradle.properties


    【解决方案1】:

    您可以通过委托属性访问项目属性。

    在你的build.gradle.kts

    val slf4jVersion: String by project
    implementation(name = "slf4j-api", group = "org.slf4j", version = slf4jVersion)
    

    官方样本:https://github.com/gradle/kotlin-dsl-samples/blob/3c977388f78bdcff1f7ed466e8d27feb5bf32275/samples/project-properties/build.gradle.kts#L14

    【讨论】:

    • 所以 gradle.properties 中的每个条目都需要一个匹配的 val 委托?这看起来更好,但也更脆弱。不过,我确实很欣赏这个选择。也许有比在 gradle.properties 中声明版本号更好的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 2020-01-18
    • 2017-09-25
    • 1970-01-01
    相关资源
    最近更新 更多