maven如何将传递依赖项添加到类路径中?

时间:2015-06-03 07:37:56

标签: java maven classpath transitive-dependency

我很困惑maven如何处理传递依赖关系以及它如何写入类路径。

如果我有两条E路径(A,B,C,D,E是ejb):
1.A< --- B< --- E(E依赖(comile)在B上,其依赖于A)
2.< --- C< --- D< --- E(所有依赖项都是编译依赖项)

问题是:E如何构建,以及哪些工件在E的类路径(META-INF)中。

非常感谢!

1 个答案:

答案 0 :(得分:1)

Maven将使用"最近的定义"确定在构建中使用哪个版本的依赖项Button buttonLoadImage = (Button) view.findViewById(R.id.buttonLoadPicture); 。来自official Maven documentation

  

"最近的定义"意味着所使用的版本将是依赖关系树中与项目最接近的版本,例如。如果A,B和C的依赖关系被定义为A - >; B - > C - > D 2.0和A - > E - > D 1.0,然后在构建A时将使用D 1.0,因为从A到D到E的路径更短。您可以在A中向D 2.0显式添加依赖项以强制使用D 2.0

在你的例子中:

E

将使用1. A <--- B <--- E 1.0 2. A <--- C <--- D <--- E 2.0 版本的依赖项1.0,因为在构建E时,此版本的路径较短。