1

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

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

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

4

5 回答 5

2

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

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

于 2008-10-15T00:47:17.760 回答
2

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

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

于 2008-10-16T10:49:43.130 回答
1

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

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

于 2008-09-17T04:21:49.587 回答
0

感谢您的回复!

这里的目标是配置这些工具,使它们以某种相似的方式相互关联。这不仅仅是简单地转储他们自动生成的任何报告,或者使用他们开箱即用的任何警告抑制提示。

例如,我将 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”的符号,而不管静态分析工具是否被抑制。有时这个符号是一个注释,有时它在注释中,但它总是有那个名字。

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

于 2008-09-17T14:50:15.270 回答
0

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

于 2008-09-17T04:23:22.110 回答