Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
2.5.3
-
None
-
None
Description
The use of @Grapes/@Grab to get spock-core libraries v1.2 for Groovy v2.5 causes an exception due to version mismatch of groovy-nio module.
Execute the following script with groovy:
@Grab('org.spockframework:spock-core:1.2-groovy-2.5') class TestX extends spock.lang.Specification { def 'test method'() { } }
2. Observe the following output:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
{{ General error during conversion: Conflicting module versions. Module [groovy-nio is loaded in version 2.5.3 and you are trying to load version 2.5.2}}groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-nio is loaded in version 2.5.3 and you are trying to load version 2.5.2
{{ at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:523)}}
{{ at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:87)}}
{{ at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerExtensionModuleFromProperties(MetaClassRegistryImpl.java:169)}}
{{ at groovy.grape.GrapeIvy.processCategoryMethods(GrapeIvy.groovy:342)}}
{{ at groovy.grape.GrapeIvy.grab(GrapeIvy.groovy:285)}}
{{ at groovy.grape.Grape.grab(Grape.java:165)}}
{{ at groovy.grape.GrabAnnotationTransformation.visit(GrabAnnotationTransformation.java:376)}}
{{ at org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:320)}}
{{ at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:976)}}
{{ at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:651)}}
{{ at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:627)}}
{{ at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:604)}}
{{ at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:354)}}
{{ at groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:87)}}
{{ at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:323)}}
{{ at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:320)}}
{{ at org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:147)}}
{{ at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:318)}}
{{ at groovy.lang.GroovyShell.parseClass(GroovyShell.java:543)}}
{{ at groovy.lang.GroovyShell.run(GroovyShell.java:372)}}
{{ at groovy.lang.GroovyShell.run(GroovyShell.java:362)}}
{{ at groovy.ui.GroovyMain.processOnce(GroovyMain.java:588)}}
{{ at groovy.ui.GroovyMain.run(GroovyMain.java:332)}}
{{ at groovy.ui.GroovyMain.access$1400(GroovyMain.java:69)}}
{{ at groovy.ui.GroovyMain$GroovyCommand.process(GroovyMain.java:291)}}
{{ at groovy.ui.GroovyMain.processArgs(GroovyMain.java:134)}}
{{ at groovy.ui.GroovyMain.main(GroovyMain.java:116)}}
{{ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)}}
{{ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)}}
{{ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)}}
{{ at java.lang.reflect.Method.invoke(Method.java:498)}}
{{ at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:110)}}
{{ at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:128)}}
1 error
Since I am not sure if this is a Groovy or Spock issue, I have reported the same issue to Spock (https://github.com/spockframework/spock/issues/943)