假设我的应用程序依赖于两个库,其中一个是 Spark。
Spark 具有 com.fasterxml.jackson
的传递依赖(特定版本且不可配置)。
另一个依赖库也有相同的传递依赖,但更新的版本(不适用于 Spark 需要的版本)。
所以基本上在测试(单元测试)应用程序时需要两个版本。
让两个版本共存的推荐方式(解决方法)是什么?如果有
答案 0 :(得分:0)
您可以尝试使用 jarjar-abrams 遮蔽有问题的依赖项。着色是重写库的字节码以将其类移动到不同的包的过程,并且对这些类的所有引用也被重写以匹配。
https://eed3si9n.com/jarjar-abrams
不幸的是,当涉及反射时,它通常不起作用 - 我不知道 Jackson 是否以与此过程不兼容的方式使用反射,但值得一试。