如何使用Kotlin DSL引用gradle.properties中设置的gradle配置?

问题描述

我正在尝试采用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吗?它使标准配置看起来像一个自定义hack。用Kotlin Gradle DSL将版本号保存在一个单独的文件中的规范和简洁的方法是什么?

解决方法

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

在您的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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...