gpt4 book ai didi

java - 如何在一个Java项目中使用多个版本的Jersey(1.8.x和2.15)?

转载 作者:太空宇宙 更新时间:2023-11-04 06:12:04 24 4
gpt4 key购买 nike

我有两个 ma​​ven 项目:projA 和 projB

projB 取决于 projA

projB 取决于 Jersey 2.15

projA 依赖于 hbase-testing-utils

hbase-testing-utils 依赖于 Jersey 1.8.x

如果projB在没有任何排除的情况下声明对projA的依赖,则projB的测试会失败,因为它们使用了Jersey项目中某些类的错误版本(1.8.x)。

如果 projB 声明对 projA 的依赖,并排除 Jersey 组件,则上述问题就会消失。但新的问题是,在测试运行期间,由于排除,projA无法找到ServletContainer(Jersey 1.8.x)。 projA 使用 hbase 测试工具来启动内存中的 hbase 服务器,该服务器底层使用 Jersey 1.8.x。

我需要在 projB 中使用 Jersey 2.15,但我还需要从 projA 中排除 Jersey 1.8.x,以避免由于使用错误的版本类而导致空指针异常。

如何解决这个问题?

最佳答案

Jersey 2 是 JAX-RS 2 的实现。Jersey 1.8 是 JAX-RS 1 的实现。JAX-RS 2 不向后兼容,并且某些方法签名相互冲突。您不能将 Jersy1.8 和 Jersey2 包含在同一个项目中。它将编译,但在运行时会失败。

关于java - 如何在一个Java项目中使用多个版本的Jersey(1.8.x和2.15)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28572781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com