David M. Karr
David M. Karr

Reputation: 15225

Groovy version mismatch running spock test in Gradle project in Eclipse

I have a Groovy and Gradle project in Eclipse Kepler with a few classes and a single Spock spec. I can run the Gradle build from the shell, and it works fine, including the Spock spec.

I now wanted to try running the Spock spec in Eclipse, either in the debugger or not. When I run it, I see the following:

Conflicting module versions. Module [groovy-all is loaded in version 2.3.9 and
you are trying to load version 2.3.10

Here is my "dependencies" block from build.gradle:

dependencies {
    compile localGroovy()
    compile gradleApi()
    compile "org.opendaylight.yangtools:yang-parser-impl:0.7.0-SNAPSHOT"
    testCompile("org.spockframework:spock-core:1.0-groovy-2.3") {
        exclude group: "org.codehaus.groovy"
    }
}

I can see in the Project Explorer that my Gradle dependencies has groovy-all-2.3.9.jar and my Groovy dependencies has groovy-all-2.3.10.jar.

This is a bit of a mess. Can I safely edit my Groovy dependencies of the project and change the jar to the 2.3.9 version?

Update:

Here is what "groovy dependencies" from the command line says. This is irrelevant to what Eclipse is using.

:dependencies

------------------------------------------------------------
Root project
------------------------------------------------------------

archives - Configuration for archive artifacts.
No dependencies

compile - Compile classpath for source set 'main'.
+--- org.codehaus.groovy:groovy-all:2.3.9
\--- org.opendaylight.yangtools:yang-parser-impl:0.7.0-SNAPSHOT
 +--- org.opendaylight.yangtools:yang-common:0.7.0-SNAPSHOT
 |    +--- com.google.guava:guava:18.0
 |    +--- org.slf4j:slf4j-api:1.7.2
 |    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 |    \--- org.opendaylight.yangtools:object-cache-api:0.7.0-SNAPSHOT
 |         +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 |         +--- org.slf4j:slf4j-api:1.7.2
 |         \--- com.google.guava:guava:18.0
 +--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT
 |    +--- org.opendaylight.yangtools:object-cache-api:0.7.0-SNAPSHOT (*)
 |    +--- org.opendaylight.yangtools:util:0.7.0-SNAPSHOT
 |    |    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 |    |    +--- com.google.code.findbugs:jsr305:2.0.3
 |    |    +--- org.slf4j:slf4j-api:1.7.2
 |    |    +--- com.google.guava:guava:18.0
 |    |    \--- com.github.romix:java-concurrent-hash-trie-map:0.2.23
 |    +--- org.opendaylight.yangtools:yang-common:0.7.0-SNAPSHOT (*)
 |    +--- com.google.guava:guava:18.0
 |    \--- com.google.code.findbugs:jsr305:2.0.3
 +--- org.opendaylight.yangtools:yang-parser-api:0.7.0-SNAPSHOT
 |    \--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT (*)
 +--- org.opendaylight.yangtools:yang-model-util:0.7.0-SNAPSHOT
 |    \--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT (*)
 +--- org.antlr:antlr4-runtime:4.0
 |    \--- org.abego.treelayout:org.abego.treelayout.core:1.0.1
 +--- com.google.guava:guava:18.0
 +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 +--- commons-io:commons-io:2.4
 \--- com.google.code.findbugs:jsr305:2.0.3

default - Configuration for default artifacts.
+--- org.codehaus.groovy:groovy-all:2.3.9
\--- org.opendaylight.yangtools:yang-parser-impl:0.7.0-SNAPSHOT
 +--- org.opendaylight.yangtools:yang-common:0.7.0-SNAPSHOT
 |    +--- com.google.guava:guava:18.0
 |    +--- org.slf4j:slf4j-api:1.7.2
 |    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 |    \--- org.opendaylight.yangtools:object-cache-api:0.7.0-SNAPSHOT
 |         +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 |         +--- org.slf4j:slf4j-api:1.7.2
 |         \--- com.google.guava:guava:18.0
 +--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT
 |    +--- org.opendaylight.yangtools:object-cache-api:0.7.0-SNAPSHOT (*)
 |    +--- org.opendaylight.yangtools:util:0.7.0-SNAPSHOT
 |    |    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 |    |    +--- com.google.code.findbugs:jsr305:2.0.3
 |    |    +--- org.slf4j:slf4j-api:1.7.2
 |    |    +--- com.google.guava:guava:18.0
 |    |    \--- com.github.romix:java-concurrent-hash-trie-map:0.2.23
 |    +--- org.opendaylight.yangtools:yang-common:0.7.0-SNAPSHOT (*)
 |    +--- com.google.guava:guava:18.0
 |    \--- com.google.code.findbugs:jsr305:2.0.3
 +--- org.opendaylight.yangtools:yang-parser-api:0.7.0-SNAPSHOT
 |    \--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT (*)
 +--- org.opendaylight.yangtools:yang-model-util:0.7.0-SNAPSHOT
 |    \--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT (*)
 +--- org.antlr:antlr4-runtime:4.0
 |    \--- org.abego.treelayout:org.abego.treelayout.core:1.0.1
 +--- com.google.guava:guava:18.0
 +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 +--- commons-io:commons-io:2.4
 \--- com.google.code.findbugs:jsr305:2.0.3

runtime - Runtime classpath for source set 'main'.
+--- org.codehaus.groovy:groovy-all:2.3.9
\--- org.opendaylight.yangtools:yang-parser-impl:0.7.0-SNAPSHOT
 +--- org.opendaylight.yangtools:yang-common:0.7.0-SNAPSHOT
 |    +--- com.google.guava:guava:18.0
 |    +--- org.slf4j:slf4j-api:1.7.2
 |    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 |    \--- org.opendaylight.yangtools:object-cache-api:0.7.0-SNAPSHOT
 |         +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 |         +--- org.slf4j:slf4j-api:1.7.2
 |         \--- com.google.guava:guava:18.0
 +--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT
 |    +--- org.opendaylight.yangtools:object-cache-api:0.7.0-SNAPSHOT (*)
 |    +--- org.opendaylight.yangtools:util:0.7.0-SNAPSHOT
 |    |    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 |    |    +--- com.google.code.findbugs:jsr305:2.0.3
 |    |    +--- org.slf4j:slf4j-api:1.7.2
 |    |    +--- com.google.guava:guava:18.0
 |    |    \--- com.github.romix:java-concurrent-hash-trie-map:0.2.23
 |    +--- org.opendaylight.yangtools:yang-common:0.7.0-SNAPSHOT (*)
 |    +--- com.google.guava:guava:18.0
 |    \--- com.google.code.findbugs:jsr305:2.0.3
 +--- org.opendaylight.yangtools:yang-parser-api:0.7.0-SNAPSHOT
 |    \--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT (*)
 +--- org.opendaylight.yangtools:yang-model-util:0.7.0-SNAPSHOT
 |    \--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT (*)
 +--- org.antlr:antlr4-runtime:4.0
 |    \--- org.abego.treelayout:org.abego.treelayout.core:1.0.1
 +--- com.google.guava:guava:18.0
 +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
 +--- commons-io:commons-io:2.4
 \--- com.google.code.findbugs:jsr305:2.0.3

testCompile - Compile classpath for source set 'test'.
+--- org.codehaus.groovy:groovy-all:2.3.9
+--- org.opendaylight.yangtools:yang-parser-impl:0.7.0-SNAPSHOT
|    +--- org.opendaylight.yangtools:yang-common:0.7.0-SNAPSHOT
|    |    +--- com.google.guava:guava:18.0
|    |    +--- org.slf4j:slf4j-api:1.7.2
|    |    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
|    |    \--- org.opendaylight.yangtools:object-cache-api:0.7.0-SNAPSHOT
|    |         +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
|    |         +--- org.slf4j:slf4j-api:1.7.2
|    |         \--- com.google.guava:guava:18.0
|    +--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT
|    |    +--- org.opendaylight.yangtools:object-cache-api:0.7.0-SNAPSHOT (*)
|    |    +--- org.opendaylight.yangtools:util:0.7.0-SNAPSHOT
|    |    |    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
|    |    |    +--- com.google.code.findbugs:jsr305:2.0.3
|    |    |    +--- org.slf4j:slf4j-api:1.7.2
|    |    |    +--- com.google.guava:guava:18.0
|    |    |    \--- com.github.romix:java-concurrent-hash-trie-map:0.2.23
|    |    +--- org.opendaylight.yangtools:yang-common:0.7.0-SNAPSHOT (*)
|    |    +--- com.google.guava:guava:18.0
|    |    \--- com.google.code.findbugs:jsr305:2.0.3
|    +--- org.opendaylight.yangtools:yang-parser-api:0.7.0-SNAPSHOT
|    |    \--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT (*)
|    +--- org.opendaylight.yangtools:yang-model-util:0.7.0-SNAPSHOT
|    |    \--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT (*)
|    +--- org.antlr:antlr4-runtime:4.0
|    |    \--- org.abego.treelayout:org.abego.treelayout.core:1.0.1
|    +--- com.google.guava:guava:18.0
|    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
|    +--- commons-io:commons-io:2.4
|    \--- com.google.code.findbugs:jsr305:2.0.3
\--- org.spockframework:spock-core:1.0-groovy-2.3
 \--- junit:junit:4.12
      \--- org.hamcrest:hamcrest-core:1.3

testRuntime - Runtime classpath for source set 'test'.
+--- org.codehaus.groovy:groovy-all:2.3.9
+--- org.opendaylight.yangtools:yang-parser-impl:0.7.0-SNAPSHOT
|    +--- org.opendaylight.yangtools:yang-common:0.7.0-SNAPSHOT
|    |    +--- com.google.guava:guava:18.0
|    |    +--- org.slf4j:slf4j-api:1.7.2
|    |    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
|    |    \--- org.opendaylight.yangtools:object-cache-api:0.7.0-SNAPSHOT
|    |         +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
|    |         +--- org.slf4j:slf4j-api:1.7.2
|    |         \--- com.google.guava:guava:18.0
|    +--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT
|    |    +--- org.opendaylight.yangtools:object-cache-api:0.7.0-SNAPSHOT (*)
|    |    +--- org.opendaylight.yangtools:util:0.7.0-SNAPSHOT
|    |    |    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
|    |    |    +--- com.google.code.findbugs:jsr305:2.0.3
|    |    |    +--- org.slf4j:slf4j-api:1.7.2
|    |    |    +--- com.google.guava:guava:18.0
|    |    |    \--- com.github.romix:java-concurrent-hash-trie-map:0.2.23
|    |    +--- org.opendaylight.yangtools:yang-common:0.7.0-SNAPSHOT (*)
|    |    +--- com.google.guava:guava:18.0
|    |    \--- com.google.code.findbugs:jsr305:2.0.3
|    +--- org.opendaylight.yangtools:yang-parser-api:0.7.0-SNAPSHOT
|    |    \--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT (*)
|    +--- org.opendaylight.yangtools:yang-model-util:0.7.0-SNAPSHOT
|    |    \--- org.opendaylight.yangtools:yang-model-api:0.7.0-SNAPSHOT (*)
|    +--- org.antlr:antlr4-runtime:4.0
|    |    \--- org.abego.treelayout:org.abego.treelayout.core:1.0.1
|    +--- com.google.guava:guava:18.0
|    +--- org.opendaylight.yangtools:concepts:0.7.0-SNAPSHOT
|    +--- commons-io:commons-io:2.4
|    \--- com.google.code.findbugs:jsr305:2.0.3
\--- org.spockframework:spock-core:1.0-groovy-2.3
 \--- junit:junit:4.12
      \--- org.hamcrest:hamcrest-core:1.3

(*) - dependencies omitted (listed previously)

BUILD SUCCESSFUL

Total time: 2.041 secs

Upvotes: 4

Views: 2349

Answers (2)

acsadam0404
acsadam0404

Reputation: 2831

When using kepler and gradle each one places its groovy module on the classpath. Lets not use kepler's one: enter image description here

Upvotes: 4

Eddú Meléndez
Eddú Meléndez

Reputation: 6530

I suggest to use the dependency below instead of localGroovy(), in order to avoid troubles with team members. Let the dependency management work to gradle

compile "org.codehaus.groovy:groovy-all:2.3.9"

Edit 01 Check this link, in order to switch de groovy version http://groovy.codehaus.org/Compiler+Switching+within+Groovy-Eclipse

Upvotes: 0

Related Questions