我正在使用 javafx-gradle-plugin,我的构建失败并显示 "Couldn't find Ant-JavaFX-library"。如何指定 JavaFX 位置?

I'm using javafx-gradle-plugin and my build fails with with "Couldn't find Ant-JavaFX-library". How do I specify the JavaFX location?

我确实安装了 openjfx(通过 dnf),我相信它正在寻找的 jar 是安装在以下路径的那个:

/usr/lib/jvm/openjfx/lib/ant-javafx.jar

显然我想避免像那样硬编码 jar 路径,但我什至还没有找到使用该路径的方法。这是 gradle 输出:

$ gradle tasks

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'testproj'.
> Couldn't find Ant-JavaFX-library, please make sure you've installed some JDK which includes JavaFX (e.g. OracleJDK or OpenJDK and OpenJFX), and JAVA_HOME is set properly.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/4.9/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 0s

gradle --version

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/home/travis/opt/gradle/4.9/lib/groovy-all-2.4.12.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

------------------------------------------------------------
Gradle 4.9
------------------------------------------------------------

Build time:   2018-07-16 08:14:03 UTC
Revision:     efcf8c1cf533b03c70f394f270f46a174c738efc

Kotlin DSL:   0.18.4
Kotlin:       1.2.41
Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM:          10.0.2 ("Oracle Corporation" 10.0.2+13)
OS:           Linux 4.18.9-200.fc28.x86_64 amd64

似乎没有一个好的答案,除了暂时坚持 Java 8。

作为 Some Guy mentioned in a comment, a new Gradle plugin is probably going to supercede this one at some point, but the author FibreFoX writes 到 "please live with the plugin in it's current state, as long as you can"。这似乎意味着被困在类路径上随 JavaFX 一起提供的 Java 的旧版本。

顺便说一句,考虑到新的 java 依赖 DAG 系统,维护插件的问题可能与打包有关; 8 是使用旧类路径系统的最后一个版本。

我很乐意找到更好的答案。