繁体   English   中英

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

[英]Integrating static analysis tools with each other?

人们如何集成各种静态分析工具,例如 PMD、Checkstyle 和 FindBugs,以便它们以某种统一的方式一起使用? 特别是,我有兴趣生成一个统一的报告,其中包括来自所有工具的警告。 此外,我希望能够使用看起来相当一致的警告抑制来标记我的代码。

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

相关问题的回答中查看我对此事的一些想法

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

我还没有尝试过,但肯定打算很快。

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

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

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

我使用 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.

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

我在这里更详细地解释这些想法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM