在我的POM中,有一个依赖:spock-core 1.0-groovy-2.3,它将groovy-all 2.3.10添加到我的项目中。而且,我的eclipse groovy插件包含groovy-all 2.3.7 jar。因此,每当我尝试运行我的groovy spec文件时,都会抛出以下错误:
groovy.lang.GroovyRuntimeException:冲突的模块版本。模块[groovy-all在版本2.3.7中加载,您正在尝试加载版本2.3.10
所以,为了匹配我给我留下的两个选项:
第一个选项是不可能的,因为没有这样的spock-core依赖可以为我提供groovy-all 2.3.7 jar。所以,请指导我如何将我的groovy eclipse插件从2.3.7升级到2.3.10。
P.S。我为我的项目设置了groovy编译器级别为2.3。而且,我在Luna,Kepler,Juno eclipse面临同样的问题。
答案 0 :(得分:5)
你可以“降级”Spock的依赖关系。只需在您的Spock依赖项中添加“groovy-all”的排除。然后显式添加对groovy-all 2.3.7的依赖
排除可以添加为follows:
<dependency>
...
<exclusions>
<exclusion>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
</exclusion>
</exclusions>
...
</dependency>
答案 1 :(得分:0)
通过添加以下Maven存储库来更新POM文件:
<!-- Below 3 GROOVY dependencies are MUST to waive the version conflict in runtime
https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-all -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-xml -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-xml</artifactId>
<version>2.4.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>2.4.16</version>
</dependency>