Maven dependency 有顺序区别么? (在Spock Groovy Test里)
项目使用IntelliJ, Maven, Spock + Groovy 单元测试。
在一个子项目的pom.xml.
我加入如下dependency:
<dependency>
<groupId>com.abc.abc.p3</groupId>
<artifactId>test-utils</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.abc.abc.core</groupId>
<artifactId>core-stage-validation</artifactId>
</dependency>
一直无法运行Spock Groovy测试Spec, 得到如下Error:
java.lang.VerifyError: class net.sf.cglib.core.DebuggingClassWriter overrides final method visit.(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
java.lang.NoClassDefFoundError: Could not initialize class org.spockframework.mock.runtime.ProxyBasedMockFactory$CglibMockFactory$ConstructorFriendlyEnhancer
但我将test dependency放到后面,两个交换位置,如下:
<dependency>
<groupId>com.abc.abc.core</groupId>
<artifactId>core-stage-validation</artifactId>
</dependency>
<dependency>
<groupId>com.abc.abc.p3</groupId>
<artifactId>test-utils</artifactId>
<scope>test</scope>
</dependency>
Groovy Spec就能运行起来了。
百思不得其解。
有高手解释以下吗?:)
谢谢