将Spring Boot升级到2.1.1时出现传递相关性错误

时间:2018-12-18 07:28:01

标签: java spring spring-boot jersey hk2

我正在尝试将Spring Boot升级到最新版本2.1.1。我的基于Java ee的Web应用程序也使用spring框架,jersey和hk2库。从spring boot pom.xml识别依赖版本,我们可以看到它依赖于Spring框架5.1.3和jersey 2.27。 Jersey库依赖hk2库-org.glassfish.hk2.external:javax.inject。以下是我们的应用程序使用的jersey和hk2库

Jersey libraries
    1. org.glassfish.jersey.core:jersey-server
    2. org.glassfish.jersey.containers:jersey-container-servlet-core
    3. org.glassfish.jersey.core:jersey-client
    4. org.glassfish.jersey.core:jersey-common
    5. org.glassfish.jersey.bundles.repackaged:jersey-guava
    6. org.glassfish.jersey.ext:jersey-spring3
    7. org.glassfish.jersey.containers:jersey-container-servlet
    8. org.glassfish.jersey.media:jersey-media-jaxb
    9. org.glassfish.jersey.media:jersey-media-json-jackson
    10. org.glassfish.jersey.ext:jersey-entity-filtering
HK2 libraries
    1. org.glassfish.hk2:spring-bridge
    2. org.glassfish.hk2:hk2-api
    3. org.glassfish.hk2:hk2-utils
    4. org.glassfish.hk2:hk2-locator
    5. org.glassfish.hk2.external:javax.inject
    6. org.glassfish.hk2.external:aopalliance-repackaged

除两个库(org.glassfish.jersey.bundles.repackaged:jersey-guava和org.glassfish.jersey.ext:jersey-spring3)外,大多数jersey库的版本均为2.27。他们的最新版本是2.25.1。

对于hk2(org.glassfish.hk2.external:javax.inject),最新版本为2.4.0。

  1. 我们应该如何解决上述依赖性问题?对于球衣,我们应该使用最新版本,即2.27;对于不存在的球衣,我们使用各自的版本。这会引起任何问题吗?
  2. 是否有针对此类情况的最佳做法推荐?

我了解我们可以依靠测试,但是我正在尝试看看是否可以预先确定问题。

1 个答案:

答案 0 :(得分:1)

解决方案是使用jersey-spring4依赖性,并删除对jersey-guava的依赖性。