我正在尝试使用 Gradle,按照此处的说明,使用 Kotlin 和 Java 11 构建一个简单的 JavaFX 11 程序。但是,此页面使用 Gradle 的 Groovy DSL,我正在尝试使用 Kotlin DSL。令人惊讶的是,我的 Google 搜索没有找到将每个 Groovy 构造映射到其等效的 Kotlin 构造的文档,或者一般解释如何将 Groovy DSL 代码转换为等效的 Kotlin DSL 代码。(这似乎是 Gradle 文档中的一个重大疏忽!)。
特别是,本文档包含以下 Groovy 代码:
compileJava {
doFirst {
options.compilerArgs = [
'--module-path', classpath.asPath,
'--add-modules', 'javafx.controls'
]
}
}
run {
doFirst {
jvmArgs = [
'--module-path', classpath.asPath,
'--add-modules', 'javafx.controls'
]
}
}
据我所知,相当于第一部分的 Kotlin 似乎是:
tasks.withType<JavaCompile> {
options.compilerArgs.addAll(arrayOf(
"--module-path", classpath.asPath,
"--add-modules", "javafx.controls"
))
}
但是,我无法弄清楚与第二部分等效的 Kotlin DSL 是什么。请注意,“run”是 Kotlin 标准库中的标准函数扩展,因此在 Kotlin DSL 中,此代码的 Kotlin 版本似乎不能出于相同目的使用名称“run”。
(注意:我考虑尝试使用一个插件来支持 JavaFX(例如,如本页所述),但该插件似乎使用起来相当复杂,而且我已经在这个项目中遇到了足够多的问题,即我很犹豫是否要在其中引入一个文档很少的开源插件。我现在真的正在尝试在 JavaFX/Gradle 中生成最简单的“Hello, World”程序,到目前为止,这似乎非常困难.)。
任何帮助,将不胜感激。