Gradle Groovy编译在测试中找不到javafx类

时间:2015-09-14 17:57:50

标签: groovy gradle javafx

我在Gradle项目(src/test/groovy下)中进行了以下Groovy测试(不是真正的测试):

import javafx.scene.paint.Color
import org.junit.Test

class MyTest {
    @Test
    void test1() {
        assert Color.AQUAMARINE != Color.BLUE
    }
}

构建文件非常简单,并声明我使用Java 8(所以JavaFX总是在类路径中):

apply plugin: 'groovy'

compileJava {
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
}
...

它还具有对Groovy的测试依赖性:

    testCompile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.4.4'

一切正常,除非我在Groovy测试中引用一些JavaFX类。

失败并出现此错误:

MyTest.groovy: 3: unable to resolve class javafx.scene.paint.Color
 @ line 3, column 1.
   import javafx.scene.paint.Color
   ^

Java代码编译得很好,我可以运行我的JavaFX应用程序。只有Groovy测试似乎无法看到JavaFX。

我已经尝试将compileJava块更改为compileGroovycompileTestGroovy,以及compileJava块,以便Groovy编译器看到JavaFX 8,但是什么都没有帮助。

我该如何解决这个问题?

Gradle版本:

------------------------------------------------------------
Gradle 2.2
------------------------------------------------------------

Build time:   2014-11-10 13:31:44 UTC
Build number: none
Revision:     aab8521f1fd9a3484cac18123a72bcfdeb7006ec

Groovy:       2.3.6
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM:          1.8.0_60 (Oracle Corporation 25.60-b23)
OS:           Linux 3.16.0-38-generic amd64

1 个答案:

答案 0 :(得分:0)

将Gradle版本更改为2.7(截至今天最新版本),一切正常。

如果您遇到同样的问题,只需使用Gradle's wrapper并将Gradle版本设置为最新版本(它们移动速度很快,因此会存在错误,但也会很快修复)。

gradle wrapper --gradle-version 2.7