小问题:edu.emory.mathcs.backport.java.util是什么意思?

4
我知道这可能微不足道,但我敢打赌我不是唯一一个被这个问题困扰的开发者:
我有一个使用Spring Hibernate框架构建Web应用程序的Maven项目。我正在使用Eclipse进行构建。
我使用Eclipse快捷键导入依赖项,经常是下意识地这样做。
我的项目依赖中有一个包含以下包的jar文件。
edu.emory.mathcs.backport.java.util
我经常错误地导入这个包而不是java.util,并获得编译或运行时错误。
问题:如何找出哪个依赖项包含此包,以便我可以(希望)使用Maven执行器插件将其排除?
4个回答

7
这并不是直接回答你的问题,但可以帮助你预防首次意外导入:
在Eclipse中,你可以在“首选项”→“Java”→“外观”→“类型过滤器”中添加一个“类型过滤器”。
从那里的描述中:
所有完全限定名称与所选过滤器字符串匹配的类型都不会显示在“打开类型”对话框中。它们还将在内容辅助或快速修复建议以及组织导入时被忽略。例如,“java.awt.*”将隐藏awt包中的所有类型。

2

您可以在命令行中运行mvn dependency:tree。它会显示您的依赖关系及其传递依赖关系的树形结构。


2

在Eclipse中,您可以使用Maven POM编辑器(POM文件的默认编辑器)打开您的pom.xml,然后单击Dependency Hierarchy

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


1

我最近在IntelliJ IDEA的Maven项目中遇到了这个问题。

你可以使用Maven命令mvn dependency:tree查看传递依赖项,以找出这个包是从哪里引入的。

然而,值得一提的是,这个问题可能会发生在Gradle或Maven项目中。如果你正在使用IntelliJ,那么另一个解决方法是从IDE的编辑器设置中完全排除这个包,它适用于你打开的所有项目,无论使用什么构建工具。

在IntelliJ IDEA 2022.2中,当为所有在IntelliJ中打开的项目启用自动导入时,排除edu.emory.mathcs.backport.java.util包的步骤如下:

  • Ctrl + Alt + S(或点击文件,然后选择设置)
  • 编辑器 > 通用 > 自动导入
  • 在排除部分中,添加以下带有IDE范围的排除:edu.emory.mathcs.backport.java.util.*

参考截图

IntelliJ Auto Import Settings Dialog


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接