Groovy+JavaFX程序,Gradle无法编译,但在IDE可以直接运行

Ellipse 发布于 2014/12/06 10:49
阅读 1K+
收藏 2

一个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,希望高手帮忙解答

加载中
0
E
Ellipse

已解决。需要在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
    }
}

0
kukaqin
kukaqin
javafx 应该不包含完整的 jre 的类包,缺少bean反射这块的吧,是jre 的简单版的,可能会导致 groovy用到的一些类找不见
E
Ellipse
并不是你说的这样,需要把jfxrt.jar加入到dependencies里才行,可能groovyc的类路径默认不包含rt.jar以外的内容
返回顶部
顶部