Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven如何解决依赖冲突?_Maven - Fatal编程技术网

Maven如何解决依赖冲突?

Maven如何解决依赖冲突?,maven,Maven,假设我们有一个项目a 项目A依赖于项目B 1.0版 项目A依赖于项目C 2.0版 项目C(版本2.0)依赖于项目B版本2.0 在这种情况下,Maven将如何解决冲突?它将使用Project B v 1.0构建 你可以用 可以看出,它省略了B2.0,因为1.0更接近 从上页开始: 默认情况下,Maven使用最接近的wins策略解决版本冲突 输出应该是这样的: [INFO] [dependency:tree] [INFO] Project A [INFO] +- Project-B:jar:1.

假设我们有一个项目a

  • 项目A依赖于项目B 1.0版
  • 项目A依赖于项目C 2.0版
  • 项目C(版本2.0)依赖于项目B版本2.0

在这种情况下,Maven将如何解决冲突?

它将使用Project B v 1.0构建

你可以用 可以看出,它省略了B2.0,因为1.0更接近

从上页开始:

默认情况下,Maven使用最接近的wins策略解决版本冲突

输出应该是这样的:

[INFO] [dependency:tree]
[INFO] Project A
[INFO] +- Project-B:jar:1.0:compile
[INFO] \- Project-C:jar:2.0:compile
[INFO]    \- (Project-B:jar:2.0:compile - ommited for conflicts with 1.0)

我找到了这个解释,它对我真的很有帮助

最近定义表示所使用的版本将是依赖关系树中与您的项目最接近的版本

例如,如果A、B和C的依赖项定义为A->B->C->D2.0和A->E->D1.0,则在构建A时将使用D1.0,因为从A到D到E的路径较短。您可以在中显式地向D2.0添加依赖项,以强制使用D2.0


我对这个问题不满意。根据,您应该“解释您是如何遇到您试图解决的问题的,以及阻止您自己解决问题的任何困难。”我看不到任何阻碍您自己解决问题的缺陷。这是一个多模块构建吗?@khmarbaise否。我在项目a的pom.xml中有项目B和项目C作为依赖项。