Gradle的Groovy插件声称它为"supports joint compilation, which allows to freely mix and match Groovy and Java code, with dependencies in both directions"
。
但是,我不认为这适用于测试代码。
我在src/test/java...
中有一个Java'样本'测试,该测试使用位于src/test/groovy
的类。
尝试使用Gradle构建时,我收到如下错误:
SwingJavaFXSampleAppTestInJava.java:23: error: cannot find symbol
SwingJavaFXSampleAppTest swingJavaFx = new SwingJavaFXSampleAppTest();
请注意,SwingJavaFXSampleAppTest
是一个尚未编译的Groovy类(在Gradle输出中,我可以看到它在尝试compileTestGroovy
之前没有运行compileTestJava
,因为前者取决于后者。
我可以使用groovy-eclipse插件与Maven构建同一个项目。
为什么它声称支持任何顺序的编译时在Gradle中不起作用,我该如何使其工作?
答案 0 :(得分:8)
如Gradle User Guide中所述,只传递给GroovyCompile
任务的代码是联合编译的。因此要么将Java和Groovy代码放入src/main/groovy
,要么重新配置源集:
sourceSets.main.java.srcDirs = []
sourceSets.main.groovy.srcDirs = ["src/main/java", "src/main/groovy"]
对于测试,请将所有main
替换为test
。
答案 1 :(得分:1)
您应该能够将您的java测试移动到src/test/groovy
。