【发布时间】:2013-11-04 14:52:10
【问题描述】:
我们正在使用 Spring Integration 版本 2.2.0.RC2。
运行测试时,抛出以下异常:
java.lang.IncompatibleClassChangeError: org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor
我知道这是因为 Spring jar 的冲突,可能是由于以下 maven 依赖项中的版本错误
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.2.RELEASE</version>
</dependency>
在使用 Spring Integration 2.2.0.RC2 版本时,应该使用哪个版本的 spring-tests?此外,将来解决此类 Maven 冲突的最佳方法是什么——是否有兼容版本的 Spring jar 列表? 谢谢
【问题讨论】:
-
您为什么使用非常旧的 SI 候选版本? - 这不是发布。当前的 2.2.x 版本是 2.2.6
-
据我从 mvn dependency:tree 中可以看出,当使用 Spring Integration 2.2.6 时,它会引入 Spring jars 版本 3.1.3,这与 spring-test 的 3.2.4 jars 冲突3.2.4 引入:[INFO] +- org.springframework.integration:spring-integration-core:jar:2.2.6.RELEASE:compile [INFO] | +- org.springframework:spring-aop:jar:3.1.3.RELEASE:compile [INFO] | | +- aopalliance:aopalliance:jar:1.0:compile [INFO] | | \- org.springframework:spring-asm:jar:3.1.3.RELEASE:compile
-
3.1.3 只是 SI 的最低要求;我们使用 3.2.x 运行每晚构建 - 只需排除 pom 中的传递依赖项。
标签: maven spring-integration spring-test