我在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
块更改为compileGroovy
,compileTestGroovy
,以及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
答案 0 :(得分:0)
将Gradle版本更改为2.7(截至今天最新版本),一切正常。
如果您遇到同样的问题,只需使用Gradle's wrapper并将Gradle版本设置为最新版本(它们移动速度很快,因此会存在错误,但也会很快修复)。
gradle wrapper --gradle-version 2.7