当前位置: 首页 > 知识库问答 >
问题:

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

金谭三
2023-03-14

我有两个maven项目:projA和projB

投射依赖于投射

PropB依赖于泽西2.15

projA依赖于hbase测试UTIL

hbase测试UTIL取决于1.8。十、

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

如果詹姆士声明依赖于詹姆士组件,那么上面的问题就消失了。但是,新的问题是,在测试运行期间,由于排除在外,计划A无法找到ServletContainer(泽西1.8. x)。

我需要使用泽西2.15在投射,但我也需要排除泽西1.8. x从投射,以避免空指针异常的结果,使用错误的版本类。

我如何解决这个问题?

共有2个答案

姜森
2023-03-14

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

章博耘
2023-03-14

也许您可以将jersey从对projA的依赖中排除,并单独添加它,但使用范围“test”。

这应该使它可用于测试,但不是在其他阶段。

 类似资料:
  • 问题内容: 如何在MacOS上安装其他Java?我安装了jdk8,效果很好。但现在出于开发目的,我需要安装jdk7。当尝试通过DMG文件安装旧版本时,我得到警告,已经安装了较新版本的Java,并且安装程序退出。 除此以外,如何安装jdk7? 问题答案: 在Mac上管理多个Java版本的最干净方法是使用。 在内Homebrew,使用: homebrew-cask 安装Java版本 jenv 管理Ja

  • 除了这一个,如何安装jdk7? 谢谢 Dakky

  • 但是这个不能像预期的那样工作,所以我在https://github.com/mygithubid/abcd中分叉(并修改)了它 然后运行,在中,定义更改为 在重新启动使用此的项目后,现在它抛出错误...尽管我看到中添加了文件夹 你能告诉我上面所犯的错误吗?谢谢!

  • 请给一些建议来解决这个问题?

  • 问题内容: 我正在尝试使用Java 8(如果需要也可以使用Wildfly appServer)构建eclipse,但是我无法使Eclipse Luna M5使用Java 8(我确实安装了Java 8 BETA支持,并且可以在JavaSE项目上运行)。 在我的POM中,将级别设置为Java 8: 但是,在我得到以下错误之后: 确实没有Java 1.8项目方面 我可以手动创建这样的代码并将其添加到ec

  • 问题内容: 在我的Java项目中,我需要使用依赖于 lucene-3.6.2的* neo4j-1.9.3 和 依赖于 lucene-4.4.0的 ElasticSearch 。我知道,如果我想直接使用两个版本的Lucene,可以使用ClassLoader从Lucene加载不同的类。 * 但是问题是我现在不会直接使用lucene的api。有什么方法可以在neo4j的api运行时加载lucene-3.