升级 Spring 引导至 2.1.1 时出现传递依赖性错误
Transitive Dependency Errors When Upgrading Spring Boot To 2.1.1
我正在尝试将 spring 引导升级到最新版本 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-[=36 之外,大多数球衣库都是 2.27 版=]3。他们的最新版本是 2.25.1。
对于hk2 (org.glassfish.hk2.external:javax.inject),最新版本是2.4.0.
- 我们应该如何解决上述依赖问题?对于球衣,我们应该使用最新版本,即 2.27,对于不存在的球衣,我们使用它们各自的版本。这会导致任何问题吗?
- 对于这种情况,是否有推荐的最佳做法?
我知道我们可以依靠测试,但我想看看我们是否可以提前发现问题。
解决方案是使用 jersey-spring4 依赖项并删除对 jersey-guava 的依赖项。
我正在尝试将 spring 引导升级到最新版本 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-[=36 之外,大多数球衣库都是 2.27 版=]3。他们的最新版本是 2.25.1。
对于hk2 (org.glassfish.hk2.external:javax.inject),最新版本是2.4.0.
- 我们应该如何解决上述依赖问题?对于球衣,我们应该使用最新版本,即 2.27,对于不存在的球衣,我们使用它们各自的版本。这会导致任何问题吗?
- 对于这种情况,是否有推荐的最佳做法?
我知道我们可以依靠测试,但我想看看我们是否可以提前发现问题。
解决方案是使用 jersey-spring4 依赖项并删除对 jersey-guava 的依赖项。