关于java:将静态分析工具相互集成吗?

关于java:将静态分析工具相互集成吗?

Integrating static analysis tools with each other?

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

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

请回答有关问题,以了解我对此事的一些想法。


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

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


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

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


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

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


感谢您的回复!

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

例如,我将PMD,Checkstyle和FindBugs配置为以以下格式报告所有警告:

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

因此,警告可能如下所示:

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

另外,无论使用哪种静态分析工具,我的源代码中的所有警告抑制均都用包括字符串" SuppressWarnings"的符号标记。有时,该符号是注释,有时是在注释中,但始终具有该名称。

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


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


推荐阅读

    linux命令补全工具?

    linux命令补全工具?,工具,系统,软件,地址,命令,名称,智能,环境,信息,终端,简

    linux系统命令行工具?

    linux系统命令行工具?,工具,系统,工作,状态,命令,地方,标准,信息,环境,基础,L

    linux命令查看静态库?

    linux命令查看静态库?,系统,平台,静态,环境,电脑,代码,工程,程序,命令,架构,l

    linux命令下载工具?

    linux命令下载工具?,工具,网络,代理,代码,简介,位置,系统,第一,下载工具,文

    linux好用的命令工具?

    linux好用的命令工具?,系统,管理,工具,基础,服务,信息,工作,发行,公司,代码,L

    linux常用命令行工具?

    linux常用命令行工具?,系统,工作,工具,地址,管理,信息,命令,软件,目录,基础,l

    linux命令行专业工具?

    linux命令行专业工具?,工具,系统,工作,信息,服务,环境,基础,命令,管理,发行,l

    linux命令行执行工具?

    linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,s

    linux命令行执行工具?

    linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,s

    linux生成静态库命令?

    linux生成静态库命令?,工程,设备,代码,管理,通用,入口,静态,文件,链接,命令,l

    开发linux命令工具?

    开发linux命令工具?,系统,工具,环境,状态,平台,设计,数据,电脑,中小企业,标

    linux命令行工具大全?

    linux命令行工具大全?,工作,系统,工具,地址,信息,命令,目录,基础,管理,文件,l

    linux命令联想工具?

    linux命令联想工具?,地址,工作,系统,工具,状态,标准,信息,命令,目录,左下角,L

    linux加静态路由命令?

    linux加静态路由命令?,信息,系统,网络,地址,环境,服务,路由,静态,情况,设计,L

    linux命令工具怎么用?

    linux命令工具怎么用?,地址,系统,工作,单位,工具,密码,服务,命令,处分,基础,

    linux命令行截图工具?

    linux命令行截图工具?,工具,电脑,软件,系统,截图,网站,工作,环境,暂停,命令,L

    linux命令工具教程?

    linux命令工具教程?,系统,工具,信息,基础,基础知识,代码,在线,地址,项目,服

    linux命令行渗透工具?

    linux命令行渗透工具?,系统,发行,网络,工具,信息,地址,管理,数据,工程,中国,

    linux卸载工具命令?

    linux卸载工具命令?,软件,系统,工具,名称,电脑,信息,命令,终端,程序,提示符,l

    linux命令流程图工具?

    linux命令流程图工具?,软件,工具,在线,网站,电脑,流程图,网络,名称,系统,首