繁体   English   中英

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

[英]How does maven add transitive dependencies into classpath?

我对maven如何处理传递依赖关系以及如何将其写入类路径感到困惑。

假设我有两条E路径(A,B,C,D,E是ejb):
1. A <--- B <--- E(E依赖(编译)于B,而A依赖于A)
2. A <--- C <--- D <--- E(所有依赖项都是编译依赖项)

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

非常感谢!

Maven将使用“最近定义”来确定要在构建中使用哪个版本的依赖项E Maven官方文档中

“最近的定义”表示所使用的版本将是依赖树中最接近您的项目的版本。 如果将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

在您的示例中:

1. A <--- B <--- E 1.0
2. A <--- C <--- D <--- E 2.0

将使用依赖项E1.0版本,因为在构建A ,路径比该版本短。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM