我很困惑maven如何处理传递依赖关系以及它如何写入类路径。
如果我有两条E路径(A,B,C,D,E是ejb):
1.A< --- B< --- E(E依赖(comile)在B上,其依赖于A)
2.< --- C< --- D< --- E(所有依赖项都是编译依赖项)
问题是:E如何构建,以及哪些工件在E的类路径(META-INF)中。
非常感谢!
答案 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
时,此版本的路径较短。