java - 切换到 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 依赖项,这会产生导致错误的冲突。
解决方案
推荐阅读
- gcc - 使用 Cygwin 编译 netperf 2.7.0 失败
- java - 将int 0的所有元素移到ArrayList的后面?
- java - 如果它们在同一行上,是否可以读取字符串和数字(来自 TXT 文件)
- python - Sphinx:如何交叉引用自定义指令生成的目标
- openedge - 如何使用progress 4GL在系统上打开excel表?
- iis - 有没有办法知道 IIS 想要关闭我的 Web 应用程序?
- javascript - Javascript XHR 文件上传进度不适用于 OPTIONS
- java - 有没有办法知道 3 个圆圈是否相交:Java - Android Studio?
- python - 如何将 Python Boto3 中的 DynamoDB 扫描格式化为人类可读的 html?
- php - 基于子数组列值中的列重新定义数组 - PHP