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

时间:2015-10-06 18:14:36

标签: java eclipse maven m2eclipse

当我在依赖关系树中多次列出一个依赖项时,即使该依赖项的所有版本都相同,Eclipse也会说(在POM的Dependency Hierarchy选项卡中)除了一个之外的所有版本都是“(对于与XXX)冲突“”。组ID,工件ID和版本都是相同的。

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

maven-core dependency conflict same versions

我正在使用Eclipse Mars(4.5.0)

除了UI中的误导性消息外,这似乎对任何事情都没有任何影响。在整个地方看到“因冲突而被忽略......”真的很烦人,特别是如果我想看到真正的冲突。

1 个答案:

答案 0 :(得分:9)

"依赖层次结构" Eclipse的选项卡由M2Eclipse插件填充。并且,不幸的是,它似乎在M2Eclipse插件source code内部是硬编码的。无论依赖被忽略的原因是什么(重复,版本冲突......),M2Eclipse插件将添加标签"省略与"冲突。

请注意,treemaven-dependency-plugin目标不是这种情况,此标签会从中模拟输出。默认情况下,命令mvn dependency:tree不会显示省略的依赖项。如果verbose标志设置为true,则输出将显示省略的每个依赖项:与另一个重复;与另一个版本和/或范围相冲突;并将一个循环引入依赖树。

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