【问题标题】:Spotbugs on a single file?单个文件上的 Spotbugs?
【发布时间】:2018-09-28 01:14:29
【问题描述】:

我在 Eclipse IDE 中使用 Spotbugs 插件。我可以在整个项目上运行 Spotbug,这给我的印象是该工具需要构建项目才能呈现其分析报告。

但是文档说它是一个静态分析工具。

所以,我很好奇它是否需要构建项目,那么我们可以称之为静态分析工具吗? 如果不需要构建项目,我们可以在单个 .java 文件上运行 Spotbugs 吗?

【问题讨论】:

    标签: static-analysis spotbugs


    【解决方案1】:

    静态分析的含义是它“静态”分析您的项目文件,而不是监视正在运行的应用程序。 https://en.wikipedia.org/wiki/Static_program_analysis

    与分析源代码相比,分析字节码既有优点也有缺点。它更快,更适合对程序流进行深入分析,但不会发现被编译掉的错误,例如不必要的导入和不一致但合法的空白。

    即使您编译了该文件,也无法在单个文件上正确运行它,因为有些检测器会考虑多个文件,例如检测您何时尝试将 null 传递给参数已注释的方法为非 null,或者当您将方法定义为 public 并且从未从类外部调用它时。

    【讨论】:

      【解决方案2】:

      是的,由于 SpotBugs 分析字节码(.class 文件),因此您必须首先构建项目(至少是您要分析的部分)。

      之后,您可以只分析单个文件,例如在 IntelliJ IDEA 中(仍然是 FindBugs 插件,但 SpotBugs 可以做 FindBugs 可以做的所有事情,相同的代码库):

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-04
        • 2021-10-06
        • 1970-01-01
        • 2019-02-19
        • 1970-01-01
        • 1970-01-01
        • 2022-11-14
        • 1970-01-01
        相关资源
        最近更新 更多