Maven类加载顺序

时间:2015-02-03 12:09:47

标签: maven classloader transitive-dependency

我对maven的类加载顺序有疑问。

我知道,因为maven版本2.0.9的类加载已经确定了,所以使用pom中的顺序。我不清楚传递依赖性。 maven是否首先加载所有顶级依赖项,然后加载传递依赖项。或者使用所有传递依赖项加载顶级依赖项,然后加载下一个顶级依赖项。

我知道在一个完全正确的maven设置中,顺序没有问题但我在依赖项中有一些重复的类,我想知道使用了哪一个。排除传递依赖是没有选择的,因为并非所有类都包含在两个jar中。

例如: 我的项目有三个依赖项A,B和C.A对C的传递依赖。哪个是加载依赖项的maven顺序?

POM:

    • C
  • C

案例A:

A - > B - > C

案例B: A - > (传递依赖性)C - > B - > ç

谢谢

1 个答案:

答案 0 :(得分:0)

我已使用调试选项-X检查了类路径,并且类路径对应于案例b。

第一个依赖项(A)在其路径上加载了它的传递依赖项(C)。然后加载下一个pom条目(B)。

我希望其他用户可以验证我的解决方案。