代码之家  ›  专栏  ›  技术社区  ›  Greg Mattes

将静态分析工具集成在一起?

  •  1
  • Greg Mattes  · 技术社区  · 16 年前

    人们如何整合各种静态分析工具,如PMD、CytSype和FunBug,以便它们以统一的方式一起使用?特别是,我感兴趣的是生成一个包含所有工具警告的统一报表。而且,我希望能够用合理的一致的警告抑制来标记我的代码。

    我这里的问题并不是要解决工具“重叠”问题,比如说PMD和其他人在寻找相同的东西。这是另一个问题。

    请看一些我的 thoughts on the matter in an answer a related question 是的。

    5 回复  |  直到 8 年前
        1
  •  2
  •   Alex Varju    16 年前

    我偶然发现 JcReport 今天,我想这正是你想要的。至少,它以组合的方式处理报告;抑制仍然是特定于工具的。该工具声称支持将PMD、CPD、FUNBUGS、CHECKTYPE和Cobertura的输出自动集成到一个HTML报告中。

    我还没试过,但肯定会很快的。

        2
  •  2
  •   Dave    16 年前

    另一个选择是收集。 http://jbrugge.com/glean/

    在他们的网站上:glean是一个ant脚本框架,用于生成团队源代码的反馈。glean的目标是尽可能少地增加对构建周期的反馈。这些脚本驱动许多开源工具,并收集生成的html,以便部署到项目网站或其他一些公共团队区域。在每天的构建周期结束时添加它,这是一种快速的方法,可以使许多反馈源保持最新并位于同一位置。

        3
  •  1
  •   user11087    16 年前

    我不清楚在你们的书中什么是统一的报告,但这里是我所做的。

    我使用Mave2进行构建,并使用它可以配置一系列报告插件(包括PMD、CPD、CHECKTYPE、COBURTURBA等)。maven还将为您的项目自动生成一个网站(站点插件),其中包含一个很好的易于浏览的网页格式的所有报告。

        4
  •  0
  •   Dónal    16 年前

    如果使用maven构建项目,并且将这些工具“插入”到maven构建中,那么为构建生成的maven报告将包含这些静态分析工具的输出。

        5
  •  0
  •   Community CDub    8 年前

    谢谢你的回复!

    这里的目标是配置这些工具,使它们以彼此相似的方式进行行为。这不只是简单地倾倒他们生成的任何报告,或者使用他们在框中使用的任何警告抑制提示。

    例如,我将pmd、checkstyle和findbugs配置为以以下格式报告所有警告:

    /absolute-path/filename:line-number:column-number: warning(tool-name): message

    所以警告可能是这样的:

    /project/src/com/example/Foo.java:425:9: warning(Checkstyle): Missing a Javadoc comment.

    此外,源代码中的所有警告抑制都用包含字符串的符号标记” SuppressWarnings “不管静态分析工具是否被压制。有时这个符号是注释,有时它在注释中,但是它总是有那个名字。

    我会更详细地解释这些想法 here 是的。