是否将静态分析工具相互集成?

时间:2020-03-05 18:57:54  来源:igfitidea点击:

人们如何集成各种静态分析工具(例如PMD,Checkstyle和FindBugs),以便以统一的方式一起使用它们?特别是,我希望生成一个包含所有工具的警告的统一报告。另外,我希望能够以合理一致的外观警告禁止标记我的代码。

我的问题不是要解决"重叠"工具,例如PMD和Checkstyle在寻找相同的东西。那是另一个问题。

请在回答相关问题时看到我对此事的一些想法。

解决方案

回答

我不清楚书中哪些内容可以视为统一报告,但这是我的工作。

我使用Maven2进行构建,并可以使用它配置一系列报告插件(包括PMD,CPD,checkstyle,coberturba等)。 Maven还将自动为项目生成一个网站(站点插件),该网站以易于浏览的网页格式包含所有报告。

回答

如果使用Maven构建项目,并且将这些工具"插入"到Maven构建中,则为该构建生成的Maven报告将包括这些静态分析工具的输出。

回答

感谢回复!

此处的目标是配置这些工具,以使它们彼此之间以某种相似的方式运行。这不仅仅是简单地转储他们自动生成的任何报告,或者使用现成的警告抑制提示。

例如,我将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.

回答

今天,我偶然发现了JcReport,它确实满足需求。至少,它以组合方式处理报告;抑制仍然是特定于工具的。该工具声称支持将PMD,CPD,FindBugs,CheckStyle和Cobertura的输出自动集成到单个HTML报告中。

我还没有尝试过,但绝对打算尽快。

回答

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

在他们的网站上:Glean是一个Ant脚本框架,用于生成有关团队源代码的反馈。 Glean的目标是尽可能减少对构建周期的反馈。脚本驱动了许多开源工具,并收集了生成的HTML,供我们部署到项目网站或者其他一些常见的团队区域。在每日构建周期结束时添加它,这是一种将多个反馈源保持在一个地方最新的快速方法。