问题背景:
运行testng,失败,跟踪到原始的出错为:
because of exception org.spockframework.util.IncompatibleGroovyVersionException: The Spock compiler plugin cannot execute because Spock 0.7.0-groovy-2.0 is not compatible with Groovy 1.8.6. For more information, see http://versioninfo.spockframework.org
尝试解决的办法:
1. 在testng工程的jar中删除groovy-all-1.8.6.jar,尝试无效,重新运行仍然报一样的错误
2. 根据出错信息,应该是版本相互不兼容导致的
在工程中搜索“groovy”,发现有个业务子工程的pom文件中用到了spock,配置如下
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>0.7-groovy-2.0</version>
<scope>test</scope>
</dependency>直觉是版本号太高。于是在http://grepcode.com/snapshot/repo1.maven.org/maven2/org.spockframework/spock-core/0.7-groovy-2.0/
中发现了spock和groovy的兼容关系
解决办法:
将spock依赖的版本号改低一点,兼容Groovy 1.8.6即可
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>0.7-groovy-1.8</version>
<scope>test</scope>
</dependency>
解决Spock与Groovy版本冲突
本文介绍了解决Spock框架与Groovy版本不兼容的问题。通过调整依赖版本,确保了Spock 0.7-groovy-1.8与Groovy 1.8.6的兼容性。
1146

被折叠的 条评论
为什么被折叠?



