为什么 Eclipse Maven 说相同版本的依赖项有冲突?

Why is Eclipse Maven saying dependencies of same version are conflicting?

当我在我的依赖关系树中多次列出一个依赖关系时,即使该依赖关系的所有版本都相同,Eclipse 也会说(在 POM 的“依赖关系层次结构”选项卡中)除了一个是“(因与 X.X.X) 冲突而省略”。组 ID、工件 ID 和版本都将相同。

这是一个随机选择依赖项的简单示例。注意 maven-model 和 maven-artifact。

我正在使用 Eclipse Mars (4.5.0)

除了 UI 中的误导性消息外,这似乎对任何事情都没有任何影响。到处都看到 "omitted for conflict..." 真是太烦人了,尤其是当我想看到真正的冲突时。

Eclipse 的 "Dependency Hierarchy" 选项卡由 M2Eclipse 插件填充。而且,不幸的是,这似乎是硬编码在 M2Eclipse 插件中 source code。无论省略依赖项的原因是什么(重复、版本冲突...),M2Eclipse 插件都会添加标签 "omitted for conflict with".

请注意,这不是 tree goal of the maven-dependency-plugin, from which this tab mimics the output. By default, the command mvn dependency:tree will not show dependencies that were omitted. If the verbose 标志设置为 true 的情况,然后输出将显示因以下原因而省略的每个依赖项:成为另一个的副本;与另一个版本 and/or 范围冲突;并在依赖树中引入一个循环。

我找不到这方面的错误,因此您可以提交增强请求 through their Bugzilla,要求插件更符合 dependency:tree 的输出(例如显示省略依赖项而不是当前默认值的真正原因)并添加一个选项以在详细模式和非详细模式之间切换。