我使用的是带有Groovy编译器2.5和Spock 2.0-M2的Eclipse 4.13版本4.0.0插件。
我们使用Gradle来管理我们的依赖项。最近,我们将Groovy库更新到了2.5.12,从那时起,当执行Spock测试时,我们得到了以下错误:
groovy-宏是在版本2.5.8中加载的,而您正在尝试加载版本2.5.12
似乎Spock正在传递性地获取2.5.8版本。我正在考虑避免Spock获取2.5.8,但是仅仅手动修改执行Spock测试的项目的类路径并确保所有Groovy库都是2.5.12版似乎没有帮助,因为我得到了相同的错误。
发布于 2021-02-17 06:36:47
我在maven project,gmaven plugin和spock 1.3上也遇到过同样的问题。
我使用maven依赖管理并导入groovy-bom
来解决版本冲突,但这没有帮助。
您必须使用与spock所依赖的groovy版本完全相同的版本。
对于spock 2.0-M2,gradle.build
说:
if (variant == 2.5) {
groovyVersion = "2.5.8"
minGroovyVersion = "2.5.0"
maxGroovyVersion = "2.9.99"
} else if (variant == 3.0) {
groovyVersion = "3.0.0"
minGroovyVersion = "3.0.0"
maxGroovyVersion = "3.9.99"
} else {
throw new InvalidUserDataException("Unknown variant: $variant. Choose one of: $variants")
}
我不知道为什么会加载另一个groovy-macro
,尽管mvn dependency:tree
打印了正确的groovy-macro
版本。
https://stackoverflow.com/questions/65950571
复制