Java依赖优先级
试图弄清楚JVM将如何决定使用哪个依赖项: 我们有一个gradle编译的fatJar,包含几个依赖项,如Jackson X版本等。 我的应用程序是Play framework 1.x应用程序,使用stage 1中的fatJar工件和其他依赖项,包括使用Jackson本身的aws java sdk,比x版本更新。 我如何判断运行时使用的是哪个Jackson版本?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的类路径而
[似乎在1 env上它使用了正确的,而在另一方面,aws sdk使用了不正确的Jackson]在简单的情况下,当您提供java的类路径而不使用任何类加载器时,答案很简单。它将按您提供的顺序搜索类路径 我强烈劝阻你不要依赖那种行为 你的问题有解决办法。其中一个是使用OSGi,它允许使用多个版本的库,但我必须指出,它是一个沉重的框架。如果您能够重新部署,您可以使用另外一些日志,只是为了证实您的理论。