7. 使用 FindBugs™ Eclipse 插件
FindBugs Eclipse 插件使得 FindBugs 可以在 Eclipse IDE 中使用。该插件由 Peter Friese 慷慨贡献。Phil Crosby 和 Andrey Loskutov 为该插件做出了重大改进。
1. 系统要求
要使用 Eclipse 的 FindBugs 插件,你需要 Eclipse 3.3 或更高版本,以及 JRE/JDK 1.5 或更高版本。
2. 安装
我们提供了更新站点(update site),使你可以自动将 FindBugs 安装到 Eclipse 中,并且可以查询和安装更新。共有三个不同的更新站点:
FindBugs Eclipse 更新站点
http://findbugs.cs.umd.edu/eclipse/
仅提供 FindBugs 的正式发布版本。
http://findbugs.cs.umd.edu/eclipse-candidate/
提供 FindBugs 的正式发布版本和候选发布版本。
http://findbugs.cs.umd.edu/eclipse-daily/
提供 FindBugs 的每日构建版本。除了能够编译通过外,未经其他测试。
你也可以通过以下链接手动下载该插件:http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plugin.eclipse_3.0.1.20150306.zip?download。将其解压到 Eclipse 的 "plugins" 子目录中。(也就是说,<eclipse_install_dir>/plugins/edu.umd.cs.findbugs.plugin.eclipse_3.0.1.20150306/findbugs.png 应该是 FindBugs 徽标的路径。)
插件解压完成后,启动 Eclipse 并选择 帮助 → 关于 Eclipse 平台 → 插件详细信息。你应该能找到一个名为 "FindBugs Plug-in" 的插件,其提供者为 "FindBugs Project"。
3. 使用插件
要开始使用,请在包资源管理器(Package Explorer)中右键单击一个 Java 项目,然后选择标记为 "Find Bugs" 的选项。FindBugs 将开始运行,问题标记(显示在源代码窗口中,同时也显示在 Eclipse 的问题视图中)将指向代码中被识别为潜在缺陷模式实例的位置。
你也可以对现有的 Java 归档文件(jar、ear、zip、war 等)运行 FindBugs。只需创建一个空的 Java 项目,并将归档文件附加到该项目的类路径中。完成这些操作后,你就可以在包资源管理器中右键单击归档文件节点,并选择标记为 "Find Bugs" 的选项。如果你还为这些二进制文件配置了源代码位置,FindBugs 还会将生成的警告链接到相应的源文件。
你可以通过打开 Java 项目的属性对话框并选择 "Findbugs" 属性页来自定义 FindBugs 的运行方式。可供选择的选项包括:
- 启用或禁用“自动运行 FindBugs”复选框。启用后,每当你在项目中修改一个 Java 类时,FindBugs 都会运行一次。
- 选择最低警告优先级和启用的错误类别。这些选项决定了显示哪些警告。例如,如果你选择“中等”警告优先级,则只会显示中等和高优先级的警告。同样,如果你取消勾选“风格”复选框,则不会显示风格类别中的任何警告。
- 选择检测器。该表格允许你选择希望为项目启用哪些检测器。
4. 扩展 Eclipse 插件(自 2.0.0 起)
Eclipse 插件支持贡献自定义 FindBugs 检测器(有关更多信息,请参阅 AddingDetectors.txt)。有两种方式可以向 Eclipse 贡献自定义插件:
现有的标准 FindBugs 检测器包可以通过 Window → Preferences → Java → FindBugs → Misc. Settings → Custom Detectors 进行配置。只需在此指定任何附加插件库的位置即可。
这种方案的好处是现有检测器包可以直接“原样使用”,并且可以快速验证第三方检测器的质量。缺点是你必须在每个新的 Eclipse 工作区中重复应用此设置,而且这些设置无法在团队成员之间共享。
可以通过标准的 Eclipse 扩展机制贡献自定义检测器。
请查阅 findBugsEclipsePlugin/schema/detectorPlugins.exsd 扩展点的文档,了解如何更新 plugin.xml。现有的 FindBugs 检测器插件可以很容易地被“扩展”为同时具备完整功能的 FindBugs 和 Eclipse 检测器插件。通常你只需将 META-INF/MANIFEST.MF 和 plugin.xml 添加到 jar 中,并更新构建脚本以避免在构建过程中覆盖 MANIFEST.MF。
这种方案的好处是,对于给定的(共享的)Eclipse 安装,每个团队成员都拥有完全相同的检测器集合,无需再进行任何配置。(非常小的)前提条件是你必须将现有的检测器包转换为有效的 Eclipse 插件。你甚至可以对第三方检测器包执行此操作。另一个主要优势是能够在运行时使用所需的第三方库来扩展默认的 FindBugs 类路径(有关更多信息,请参阅 AddingDetectors.txt)。
5. 故障排除
本节列出了该插件的常见问题以及(如果已知的)解决方法。
如果在 Eclipse 中启动 FindBugs 分析后看到 OutOfMemory 错误对话框,请增加 JVM 可用内存:修改 eclipse.ini,并将以下行添加到文件末尾:
-vmargs -Xmx1000m
重要: 以 -vmargs 开头的配置参数必须位于 eclipse.ini 文件的最后几行,并且每行只允许出现一个参数!
- 如果你在源代码窗口或「问题」视图中看不到任何 FindBugs 问题标记,可能需要更改「问题」视图的过滤器设置。详见 http://findbugs.sourceforge.net/FAQ.html#q7。
评论
登录后参与评论
KnowForge