Groovy+JavaFX程序,Gradle无法编译,但在IDE可以直接运行
一个JavaFX8程序,最开始用Java开发,现在往Groovy上转,现在Java代码和Groovy代码都有。
(1)一开始继承关系只有Groovy类继承Java类,:compileJava没有问题,:compileGroovy失败,提示Execution failed for task ':compileGroovy'.
> Unable to load class xxx.XXXXX due to missing dependency javafx/beans/property/ObjectProperty
编译java时候能找到javafx相关类,编译groovy却找不到
(2)后来将那个报错的类变成Groovy类以后,就变成Groovy集成Java,Java又继承Groovy这样,Gradle在编译Java时提示找不到用Groovy写的父类(这是肯定的)。
(3)无论是上面哪一种情况,在IDEA里直接右键运行Main class都能直接跑起来。
刚刚开始接触groovy和gradle,希望高手帮忙解答
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
并不是你说的这样,需要把jfxrt.jar加入到dependencies里才行,可能groovyc的类路径默认不包含rt.jar以外的内容
已解决。需要在build.gradle中加入以下内容(或其他等价写法)。
configurations { providedCompile }
dependencies {
providedCompile files("${System.env['JAVA_HOME']}/jre/lib/ext/jfxrt.jar")
}
sourceSets {
main {
compileClasspath += configurations.providedCompile
}
test {
compileClasspath += configurations.providedCompile
runtimeClasspath += configurations.providedCompile
}
}