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

问题描述 投票:1回答:5

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

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

[请参阅我的 thoughts on the matter in an answera related question中的一些。

java code-analysis static-analysis
5个回答
2
投票

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

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


2
投票

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

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


1
投票

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

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


0
投票

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


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”的符号标记,而与静态分析工具无关。有时,该符号是注释,有时在注释中,但始终具有该名称。

我将更详细地解释这些想法here


0
投票

这里是Netdata的案例研究,在其工作流程中使用3种工具-Codacy,LGTM和Coverity来测试和识别错误https://www.codacy.com/case/netdata

© www.soinside.com 2019 - 2024. All rights reserved.