【问题标题】:Which spring-test jar version to use with Spring Integration哪个 spring-test jar 版本与 Spring Integration 一起使用
【发布时间】: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


【解决方案1】:

如果您执行mvn dependency:tree,其中是否有任何未达到预期水平的 org.springframework:spring-core 库?

运行它并确保您的春季版本号全部一致。使用dependencyManagement 节以确保它们是一致的。

This issue 有同样的症状。

【讨论】:

    【解决方案2】:

    我们针对 Spring 3.2.x 运行一个夜间构建的 SI; 3.1.3 只是支持的最低版本。要使用更新版本的 Spring,您可以 &lt;exclude/&gt; POM 中的传递依赖项。

    【讨论】:

      猜你喜欢
      • 2022-11-25
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 2018-08-28
      • 2019-02-08
      • 2020-11-25
      相关资源
      最近更新 更多