1

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

我知道,自从 Maven 版本 2.0.9 以来,类加载一直是确定性的,并且使用 pom.xml 中的顺序。我不清楚传递依赖。maven 是否首先加载所有顶级依赖项,然后是传递依赖项。或者加载具有所有传递依赖项的顶级依赖项,然后加载下一个顶级依赖项。

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

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

聚甲醛:

  • 一个
    • C
  • C

案例一:

A --> B --> C

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

谢谢

4

1 回答 1

1

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

第一个依赖项 (A) 与其传递依赖项 (C) 一起加载到类路径中。然后加载下一个 pom 条目 (B)。

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

于 2015-02-03T12:44:06.523 回答