Gradle 如何在Kotlin DSL中设置“run”的系统属性

Gradle 如何在Kotlin DSL中设置“run”的系统属性,gradle,kotlin,gradle-kotlin-dsl,Gradle,Kotlin,Gradle Kotlin Dsl,在Kotlin DSL中,与此等价的是什么: run { systemProperties["spring.output.ansi.enabled"] = "always" } 我试过: run { systemProperties("spring.output.ansi.enabled" to "always") } 但是得到: * What went wrong: Script compilation error: Line 37: systemProperti

在Kotlin DSL中,与此等价的是什么:

run {
    systemProperties["spring.output.ansi.enabled"] = "always"
}
我试过:

run {
    systemProperties("spring.output.ansi.enabled" to "always")
}
但是得到:

* What went wrong: Script compilation error:

Line 37:     systemProperties(Pair("spring.output.ansi.enabled", "always"))
             ^ Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
                 public inline fun JavaExec.systemProperties(vararg properties: Pair<String, Any?>): JavaExec defined in org.gradle.kotlin.dsl
                 public inline fun Test.systemProperties(vararg properties: Pair<String, Any?>): Test defined in org.gradle.kotlin.dsl
                 public inline fun JavaForkOptions.systemProperties(vararg properties: Pair<String, Any?>): JavaForkOptions defined in org.gradle.kotlin.dsl
*出了什么问题:脚本编译错误:
第37行:系统属性(成对(“spring.output.ansi.enabled”、“始终”))
^未解析的引用。由于接收器类型不匹配,以下候选项均不适用:
public inline fun JavaExec.systemProperties(vararg属性:Pair):在org.gradle.kotlin.dsl中定义的JavaExec
public inline fun Test.systemProperties(vararg properties:Pair):在org.gradle.kotlin.dsl中定义的测试
public inline fun JavaForkOptions.systemProperties(vararg属性:Pair):org.gradle.kotlin.dsl中定义的JavaForkOptions

我认为kotlin将run块误认为是其内置的run方法。 如果您指的是应用程序的插件,那么可以使用

application {
   applicationDefaultJvmArgs = listOf("-Dspring.output.ansi.enabled=always")
}
请参阅此处的更多信息:

根据

任务{
命名(“运行”){
systemProperty(“spring.output.ansi.enable”、“始终”)
}
}

谢谢,这很有效。我仍然希望,尽管有人能想出一些类似格拉德尔版本的东西,否则它不会感觉像是“自然迁移”。-)
tasks {
    named<JavaExec>("run") {
        systemProperty("spring.output.ansi.enable", "always")
    }
}