Как установить системные свойства `run` в 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:     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

1 ответ

Я полагаю, что kotlin принимает блок run за его встроенный метод run. Если вы имеете в виду плагин приложения, вы можете настроить его свойства времени выполнения с помощью

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 {
    named<JavaExec>("run") {
        systemProperty("spring.output.ansi.enable", "always")
    }
}
Другие вопросы по тегам