我有两个Maven项目: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的依赖,那么上述问题就可以解决。但是新的问题是,在测试运行过程中,由于排除,projA无法找到ServletContainer(Jersey 1.8.x)。 projA使用hbase测试工具来启动内存中的hbase服务器,该服务器在下面使用Jersey1.8.x。

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

我该如何解决这个问题?

最佳答案

也许您可以将球衣从对projA的依赖中排除,然后将其单独添加,但范围为“ test”。

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

10-05 19:12