I’m seeing a not very useful error from Gradle, I just need to understand why. I’m adding Groovy tests to a Java project. The test compiles without using @CompileStatic. When i add the @CompileStatic it errors, why?
Caused by: java.lang.NoSuchFieldError: COMPARABLE_TYPE
at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:118)
at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:39)
My config is fairly basic:
apply plugin: ‘groovy’
dependencies {
testCompile “org.codehaus.groovy:groovy-all:2.1.6” }
Any help would be much appreciated
We’d need to see the full stack trace (’-S’) and the code that you are trying to compile (ideally a self-contained reproducible example).
Stacktrace is here: https://gist.github.com/covolution/6424938
Gradle 1.7 ------------------------------------------------------------
Build time:
2013-08-06 11:19:56 UTC Build number: none Revision:
9a7199efaf72c620b33f9767874f0ebced135d83
Groovy:
1.8.6 Ant:
Apache Ant(TM) version 1.8.4 compiled on May 22 2012 Ivy:
2.2.0 JVM:
1.7.0_21 (Oracle Corporation 23.21-b01) OS:
Mac OS X 10.8.3 x86_64
There’s not much to the test class. The class is annotated with a @CompileStatic annotation. It compiles and runs fine in STS.
Looks like the Groovy compiler is blowing up with ‘java.lang.NoSuchFieldError: COMPARABLE_TYPE’. However, I don’t understand why parts of the stack trace are missing. Can you confirm that you ran with ‘–full-stacktrace’?
STS is hard to compare because it uses a forked version of the Groovy compiler.
Hi, i ran --full-strackrace and updated the gist. Any ideas?
Not sure what’s going on there. Maybe you effectively have multiple Groovy versions on the test compile class path? A self-contained reproducible example would be appreciated.
You were right, it looks like I had another version of Groovy in the classpath.
So my JUnit test now attempts to compile statically. Unfortunately GROOVY-6155 is blocking me making progress.
This bug is marked as fixed in Groovy 2.1.7/2.2.0-beta-2, which are scheduled to be released tomorrow.