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



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

我相信 kotlin 将运行块误认为是其内置的运行方法。如果您指的是应用程序的插件,则可以使用

application {
   applicationDefaultJvmArgs = listOf("-Dspring.output.ansi.enabled=always")
}

在此处查看更多内容:

https://docs.gradle.org/current/userguide/application_plugin.html

根据 https://docs.gradle.org/current/userguide/kotlin_dsl.html#tasks

tasks {
    named<JavaExec>("run") {
        systemProperty("spring.output.ansi.enable", "always")
    }
}

最新更新