Joh*_*nny 101 findbugs checkstyle pmd sonarqube
我们正在从头开始研究一个Web项目,并且正在研究以下静态代码分析工具.
该项目建立在Maven之上.我没有使用多种工具来实现这一目的,而是在寻找一个灵活的解决方案并且遇到了SonarQube.
我们是否可以通过SonarQube实现Checkstyle,PMD和Findbugs的结果?
Oli*_*ent 95
Sonar将默认为Java项目运行CheckStyle,FindBugs和PMD,以及其他一些"插件",例如Cobertura(代码覆盖).然而,主要的附加值是它将历史记录存储在数据库中.然后,您可以看到趋势.您是在改进代码库还是反其道而行之?只有带内存的工具才能告诉你.
您应该在CI系统中运行Sonar,以便即使需要一些时间来执行(例如CPD - 复制粘贴检测器)也可以运行.你会有你的历史.例如,使用Eclipse插件,您可以更快地检测到违规行为 - 这很好 - 但如果开始耗时太长,或者运行较少的"高质量插件"(例如跳过CPD或跳过代码覆盖率分析).你不会有历史.
此外,Sonar还生成视觉报告"仪表板"样式.这使得它很容易掌握.借助Jenkins中的Sonar,您将能够向开发人员和管理人员展示过去几周和几个月内对代码库质量所做工作的影响.
MeB*_*Guy 47
Sonar使用这3个工具作为插件,并通过显示这些工具中的图表等来汇总来自所有三个数据的数据.所以他们是声纳的补充.
Sonar很棒,但是如果你想单独使用上面提到的工具并且仍然有很好的图形,你可以使用Analysis Collector插件作为Jenkins CI构建的一部分.这样做的一个小优点是,您可以将PMD/Findbugs/Checkstyle配置签入SCM并将其集成到Maven构建中,而不是依赖于单独的Sonar服务器.
Sonar不仅仅是这些工具。gui的最大好处是,它使您可以轻松配置任何内容。它提供的统计信息非常详细(代码行等)。而且它甚至为测试覆盖率等提供了强大的支持:)
在这里您可以看一下:http : //nemo.sonarsource.org/
... 几年后:不,不是!SonarQube 假设能够用自己的分析器覆盖所有规则,但仍有来自 PMD 或 CheckStyle 的规则没有被 SonarQube 覆盖。参见示例:PMD ReturnFromFinallyBlock。