【问题标题】:Transitive Dependency Errors When Upgrading Spring Boot To 2.1.1将 Spring Boot 升级到 2.1.1 时的传递依赖错误
【发布时间】:2018-12-18 07:28:01
【问题描述】:

我正在尝试将 Spring Boot 升级到最新版本 2.1.1。我的基于 java ee 的 Web 应用程序也使用了 spring 框架、jersey 和 hk2 库。从spring boot pom.xml 中识别依赖版本,我们可以看到它依赖于spring framework 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 这两个库之外,大多数球衣库都是 2.27 版。他们的最新版本是 2.25.1。

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

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

我知道我们可以依靠测试,但我想看看我们是否可以提前发现问题。

【问题讨论】:

  • 我个人会选择最新版本的 hk2。它应该是向后兼容的并且已经有一段时间了,所以你应该没问题

标签: java spring spring-boot jersey hk2


【解决方案1】:

解决方案是使用 jersey-spring4 依赖并删除对 j​​ersey-guava 的依赖。

【讨论】:

    猜你喜欢
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 2021-10-08
    相关资源
    最近更新 更多