如何使用Gradle等kts文件创建Kotlin DSL

时间:2019-07-08 07:37:26

标签: kotlin dsl gradle-kotlin-dsl

我正在尝试制作类似于Gradle构建脚本的配置文件,但是我不知道如何评估使用DSL的.kts文件

我已经尝试过使用KotlinJsr223JvmLocalScriptEngineFactory,但这在绑定变量时非常难看,而且我不知道是否可以将DSL的上下文设置为其他内容。

我已经尝试过了:

import org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngineFactory

fun main() {
    val source = """
        println("Hi!")
        println(bindings["a"])
    """.trimIndent()
    val engine = KotlinJsr223JvmLocalScriptEngineFactory().scriptEngine
    engine.eval(source, engine.createBindings().apply {
        put("a", "b")
    })
}

但这不支持很多东西,例如默认导入,设置this上下文(我不确定它的真正含义)以及很好。我已尝试关注making auto completion work in kotlin scripts,但不起作用。

0 个答案:

没有答案