首页 > 解决方案 > 切换到 1.3-groovy-2.5 而不是 ASTTransformation 中的 Nullpointer 后 Spock 测试未运行

问题描述

问题描述

我使用 1.3-groovy-2.4 版本的 spock-core 和 spock-spring 为 Java8 代码(Spring 控制器)编写了测试,一切都很好。

现在我们正在转向 Java11 / groovy 2.5。所以我尝试使用 1.3-groovy-2.5 但即使是最少的测试,我也会收到以下错误消息。

Error:Groovyc: While compiling tests of groovy2.5.spock: Could not instantiate global transform class org.spockframework.compiler.SpockTransform specified at jar:file:/Users/me/.m2/repository/org/spockframework/spock-core/1.3-groovy-2.5/spock-core-1.3-groovy-2.5.jar!/META-INF/services/org.codehaus.groovy.transform.ASTTransformation because of exception java.lang.NullPointerException

Warning:Groovyc: While compiling tests of groovy2.5.spock: The global transform for class groovy.grape.GrabAnnotationTransformation is defined in both jar:file:/Users/me/.m2/repository/org/codehaus/groovy/groovy/2.4.11/groovy-2.4.11-indy.jar!/META-INF/services/org.codehaus.groovy.transform.ASTTransformation and jar:file:/Users/me/.m2/repository/org/codehaus/groovy/groovy/2.5.5/groovy-2.5.5.jar!/META-INF/services/org.codehaus.groovy.transform.ASTTransformation - the former definition will be used and the latter ignored.

Warning:Groovyc: While compiling tests of groovy2.5.spock: The global transform for class org.codehaus.groovy.ast.builder.AstBuilderTransformation is defined in both jar:file:/Users/me/.m2/repository/org/codehaus/groovy/groovy/2.4.11/groovy-2.4.11-indy.jar!/META-INF/services/org.codehaus.groovy.transform.ASTTransformation and jar:file:/Users/me/.m2/repository/org/codehaus/groovy/groovy/2.5.5/groovy-2.5.5.jar!/META-INF/services/org.codehaus.groovy.transform.ASTTransformation - the former definition will be used and the latter ignored.

附加环境信息

IDE IntelliJ 2019.2

Java/JDK

jdk1.8.0_152

Groovy 版本

Groovy 版本:2.5.3 JVM:11.0.2 供应商:Oracle Corporation 操作系统:Mac OS X

构建工具版本

阿帕奇马文

阿帕奇 Maven 3.5.4

操作系统

Mac 10.14 莫哈韦沙漠

IDE

IntelliJ 2019.2

使用的构建工具依赖项

阿帕奇马文

<dependency>
    <groupId>org.spockframework</groupId>
    <artifactId>spock-core</artifactId>
    <version>1.3-groovy-2.5</version>
</dependency>

<dependency>
    <groupId>org.apache.tinkerpop</groupId>
    <artifactId>gremlin-groovy</artifactId>
    <version>3.3.1</version>
     <scope>compile</scope>
</dependency>

可能的原因

gremlin-groovy 3.3.1 具有 groovy 2.4.11 依赖项,这会产生导致错误的冲突。

标签: javamaventestinggroovyspock

解决方案


推荐阅读