Maven dependency 有顺序区别么? (在Spock Groovy Test里)

snowofjuly 2016-10-17 05:01:25
项目使用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就能运行起来了。
百思不得其解。

有高手解释以下吗?:)

谢谢
...全文
483 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowofjuly 2016-10-19
  • 打赏
  • 举报
回复
恩,有些道理。 但是,我把两个dependency调换了以下位置,就没有问题了。 该如何解释呢。
qq_15654157 2016-10-18
  • 打赏
  • 举报
回复


你看 pom.xml 文件这里就知道了 ,是依赖关系的原因

比如 A.jar 依赖 B.jar ,
在pom.xml 里面只用引入 A.jar 就行了 。B.jar会自动引入

你说的这个情况就是 你先在pom.xml 引入了B.jar , 然后又引入A.jar ,,这样就会重复引入 , 如果B依赖的 A和你 在pom引入的A版本不一致就会报错

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧