Maven 次要烦恼:edu.emory.mathcs.backport.java.util

Maven 次要烦恼:edu.emory.mathcs.backport.java.util,maven,Maven,我知道这很琐碎,但我打赌我不是唯一一个被这个问题困扰的开发人员: 我有一个maven项目,为webapp构建Spring Hibernate框架。 我正在使用Eclipse构建 我使用Eclipse快捷方式来导入依赖项,而且通常几乎是下意识地这样做 在我的项目依赖项中的某个地方,我有一个jar,其中包含以下包 edu.emory.mathcs.backport.java.util 我经常意外地导入这个包而不是java.util,并得到编译或运行时错误 问题:我如何找出包含此包的依赖项,以便(希望

我知道这很琐碎,但我打赌我不是唯一一个被这个问题困扰的开发人员:

我有一个maven项目,为webapp构建Spring Hibernate框架。 我正在使用Eclipse构建

我使用Eclipse快捷方式来导入依赖项,而且通常几乎是下意识地这样做

在我的项目依赖项中的某个地方,我有一个jar,其中包含以下包

edu.emory.mathcs.backport.java.util

我经常意外地导入这个包而不是java.util,并得到编译或运行时错误


问题:我如何找出包含此包的依赖项,以便(希望)使用Maven enforcer插件排除它。

您可以从命令行运行
mvn dependency:tree
。它将显示依赖项及其可传递依赖项的树。

在Eclipse中,您可以使用Maven pom编辑器(pom文件的默认编辑器)打开
pom.xml
,然后单击依赖项层次结构


在此视图中,您可以使用筛选器或选择右侧的依赖项,该依赖项的依赖项树将显示在左侧。

这不会直接回答您的问题,但可以帮助您首先防止意外导入:

在Eclipse中,您可以在首选项中添加类型过滤器→ JAVA→ 外表→ 类型过滤器

根据描述:

“打开类型”对话框中不会显示其完全限定名称与所选筛选器字符串匹配的所有类型。在内容辅助或快速修复方案中以及在组织导入时,它们也将被忽略。例如,“java.awt.*”将对awt包隐藏所有类型