使用 SpotBugs Eclipse 插件

qianmoQqianmoQ· 更新于 2026-09-30· 阅读 7 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

SpotBugs Eclipse 插件允许在 Eclipse IDE 中使用 SpotBugs。该插件由 Peter Friese 慷慨贡献,Phil Crosby 和 Andrey Loskutov 对插件做了重大改进。

环境要求

要使用 Eclipse 的 SpotBugs 插件,需要 Eclipse Neon (4.6) 或更高版本。

安装

我们提供了更新站点,可让您自动将 SpotBugs 安装到 Eclipse 中,并查询和安装更新。共有四个不同的更新站点:

https://spotbugs.github.io/eclipse/

仅提供 SpotBugs Eclipse 插件的官方版本。

https://spotbugs.github.io/eclipse-candidate/

提供 SpotBugs Eclipse 插件的正式版本和候选发布版本。

https://spotbugs.github.io/eclipse-latest/

提供由 master 分支构建的最新 SpotBugs Eclipse 插件。

https://spotbugs.github.io/eclipse-stable-latest/

提供从 release-3.1 分支构建的最新 SpotBugs Eclipse 插件。

也可以使用 Eclipse marketplace 来安装 SpotBugs Eclipse 插件。

使用插件

要开始使用,请在 Package Explorer 中右键单击一个 Java 项目,然后选择标记为“Spot Bugs”的选项。SpotBugs 将会运行,问题标记(显示在源代码窗口中,同时也会显示在 Eclipse 的 Problems 视图中)会指向你的代码中被识别为潜在缺陷模式实例的位置。

你也可以对现有的 Java 归档文件(jar、ear、zip、war 等)运行 SpotBugs。只需创建一个空的 Java 项目,并将这些归档文件附加到项目类路径中。完成后,你就可以在 Package Explorer 中右键单击归档文件节点,并选择标记为“Spot Bugs”的选项。如果你还为这些二进制文件配置了源代码位置,SpotBugs 生成的警告还会链接到相应的源文件。

你可以通过打开某个 Java 项目的“属性”对话框,并选择“SpotBugs”属性页来自定义 SpotBugs 的运行方式。可供选择的选项包括:

  • 启用或禁用“自动运行 SpotBugs”复选框。启用后,每次你在项目中修改 Java 类时,SpotBugs 都会运行。
  • 选择最低警告优先级和启用的缺陷类别。这些选项决定了显示哪些警告。例如,如果你选择“Medium”警告优先级,则只会显示 Medium 和 High 优先级的警告。类似地,如果你取消勾选“Style”复选框,则不会显示 Style 类别中的任何警告。
  • 选择检测器。该表格允许你选择希望为项目启用的检测器。

扩展 Eclipse 插件(自 2.0.0 起)

Eclipse 插件支持贡献自定义 SpotBugs 检测器(更多信息另见 AddingDetectors.txt)。有两种方式可以向 Eclipse 贡献自定义插件:

  • 现有的标准 SpotBugs 检测器包可以通过 Window → Preferences → Java → FindBugs → Misc. Settings → Custom Detectors 进行配置。只需在其中指定任何附加插件库的位置即可。该方案的好处是现有的检测器包可以“原样”使用,并且你可以快速验证第三方检测器的质量。缺点是你必须在每个新的 Eclipse 工作区中应用这些设置,而且这些设置无法在团队成员之间共享。

  • 可以通过标准的 Eclipse 扩展机制贡献自定义检测器。

    请查看 eclipsePlugin/schema/detectorPlugins.exsd 扩展点的文档,了解如何更新 plugin.xml。现有的 FindBugs 检测器插件可以很容易地“扩展”为功能完整的 SpotBugs 以及 Eclipse 检测器插件。通常你只需要向 jar 中添加 META-INF/MANIFEST.MF 和 plugin.xml,并更新构建脚本,使其在构建过程中不覆盖 MANIFEST.MF。

    此方案的好处在于:对于给定的(共享的)Eclipse 安装,每位团队成员使用的检测器集合完全相同,无需再进行任何配置。(非常小的)前提条件是,你需要将现有的检测器包转换为有效的 Eclipse 插件。即使是第三方检测器包,也可以这样处理。另一个主要优势是能够在运行时用所需的第三方库扩展默认的 SpotBugs 类路径(更多信息请参见 AddingDetectors.txt)。

故障排除

本节列出了该插件的常见问题以及(如果已知)相应的解决方法。

  • 如果在 Eclipse 中启动 SpotBugs 分析后出现 OutOfMemory 错误对话框,请增加 JVM 可用内存:修改 eclipse.ini 并将以下几行添加到文件末尾:

    重要提示:从 -vmargs 行开始的配置参数必须是 eclipse.ini 文件中的最后几行,且每行只能有一个参数!

  • 如果你没有看到任何 SpotBugs 问题标记(在源代码窗口或「问题」视图中),则可能需要更改 Problems View 过滤器设置。更多信息请参见 常见问题解答中的 Q6。

评论

登录后参与评论

正在加载评论…