Java依赖优先级

Java依赖优先级,java,dependency-management,Java,Dependency Management,试图弄清楚JVM将如何决定使用哪个依赖项: 我们有一个gradle编译的fatJar,包含几个依赖项,如Jackson X版本等。 我的应用程序是Play framework 1.x应用程序,使用stage 1中的fatJar工件和其他依赖项,包括使用Jackson本身的aws java sdk,比x版本更新。 我如何判断运行时使用的是哪个Jackson版本? [似乎在1 env上它使用了正确的,而在另一方面,aws sdk使用了不正确的Jackson]在简单的情况下,当您提供java的类路径而

试图弄清楚JVM将如何决定使用哪个依赖项:

我们有一个gradle编译的fatJar,包含几个依赖项,如Jackson X版本等。 我的应用程序是Play framework 1.x应用程序,使用stage 1中的fatJar工件和其他依赖项,包括使用Jackson本身的aws java sdk,比x版本更新。 我如何判断运行时使用的是哪个Jackson版本?
[似乎在1 env上它使用了正确的,而在另一方面,aws sdk使用了不正确的Jackson]

在简单的情况下,当您提供java的类路径而不使用任何类加载器时,答案很简单。它将按您提供的顺序搜索类路径

我强烈劝阻你不要依赖那种行为

你的问题有解决办法。其中一个是使用OSGi,它允许使用多个版本的库,但我必须指出,它是一个沉重的框架。

如果您能够重新部署,您可以使用另外一些日志,只是为了证实您的理论。