试图弄清楚JVM将如何决定使用哪个依赖项:
gradle
编译的fatJar,包含几个依赖项,即Jackson
X版本等。Play framework 1.x
应用,使用第1阶段的fatJar工件和其他依赖项,包括使用aws java sdk
本身的Jackson
,比X版本更新。如何判断运行时使用的Jackson
版本?
[似乎在1 env上它使用了正确的一个,另一方面,aws sdk
正在使用不正确的Jackson
]
答案 0 :(得分:1)
在简单的情况下,当您向java提供类路径并且不使用任何类加载器时,答案很简单。它将按您提供的顺序搜索类路径。
我强烈反对你不依赖这种行为。
有问题的解决方案。其中一个使用OSGi它允许使用多个版本的库,但我必须提到它是重型框架。