这篇文章是去年发布的原始文章的修订版,涵盖了Sonar 2.8版。 几个月过去了,在此期间,Sonar团队发布了四(4)个终极质量平台的新版本。 现在,最新版本(2.12)在其核心实现中包括JaCoCo ,并且不推荐使用现有插件。 由于我在以前的文章中将JaCoCo插件包含在Sonar插件中,因此我认为是时候删除它并完善我的列表了。 因此,这里是2012年您不能错过的5 + 1 Sonar插件!

我想澄清一下,在我最终选择之前我已经做了一些例外。 我排除了所有与其他语言和IDE有关的插件,以使本文尽可能多地保留。 由于明显的原因,我也排除了所有商业插件。 在此假设之后,我将选择范围限于以下类别:

  • 附加指标
  • 管治
  • 积分
  • 可视化/报告

Sonar本身具有多种功能,可满足软件开发团队的大多数需求。 但是,我认为以下插件是必不可少的,特别是对于那些已经采用或尝试采用敏捷实践的插件。 老实说,很难只选择6个插件!!

1.Hudson / Jenkins插件

尽管可以通过多种构建工具(maven,ant等)轻松触发Sonar分析,但我坚信,它与最著名的开源CI服务器的本机集成使其成为持续集成/部署实践的重要组成部分。 配置非常简单,建议的最佳实践是在夜间构建时触发Sonar。 团队成员可以自动跟踪日常软件质量,而不必担心何时应该运行新的分析。

2.时间轴插件(2012年新条目)

您需要多少次才能看到源代码在最近几周或几个月内(希望)有所改善? 您是否曾经尝试在单个图中比较基本质量指标? 时间线插件在项目级别集成了Google可视化注释时间线组件,并提供了一种灵活的方式来获取有关声纳质量指标的历史数据。 此外,它通过提供有关软件项目演变的详细信息,在可视化图形上添加了版本和日期里程碑。 对所有团队成员(开发人员,架构师,测试人员甚至经理)都非常有用。

3,无用的代码插件

它看起来类似于Sonar Core的名为“重复代码”的功能,但是它增加了一些指标,我认为这对大型或旧系统特别有用。 通常,它衡量可以从您的代码中删除多少行。 它报告了可以安全删除的未使用私有方法的数量,以及经过更仔细的代码检查后可以删除的代码中存在未使用的受保护方法的数量。 最后,它提供了有关代码复制的更多详细信息,通知如何形成重复的行(即y行的x块)

4.SIG可维护性模型插件

顾名思义,此插件是软件改进组 (SIG)可维护性模型的实现。

报告的排名-从-

sonar 集成maven_python

非常差),对以下基本指标表示++(非常好):可分析性,可变性,稳定性和可测试性。 该排名的核心思想是衡量一系列基本指标,例如代码行(LOC),重复项,单元测试,复杂度和单元大小。 这些指标中的每一个都被计入某些提到的指标中,最终结果代表了项目的整体可维护性。 我们可以在模型的所有四个轴的图形(蜘蛛)表示中看到此分析的结果。 概览此图,您就可以同时全局和详细地查看更改和维护代码库的难易程度。 对我来说,这是我每天早晨检查的第一个索引,如果不是+或++,那么我们肯定做错了

sonar 集成maven_python_02

5,质量指标插件

您是否曾经想过检查一个数字(指标)并了解您的项目运行状况如何? 我确定你有!! 好吧,质量索引插件正是您要寻找的。 该插件结合了质量的四个加权轴(复杂度,违反代码,违反样式,覆盖测试),并在0(最低)到10(最高)之间排名。 此外,它基于上述复杂度因子来计算方法的复杂度因子。 您是否曾经尝试使用此插件获得10级的排名? 我认为值得努力!

sonar 集成maven_大数据_03

6.技术债务插件 最后但并非最不重要的一点是,该插件可报告您作为开发人员,团队,公司需要支付的利息。 技术债务是沃德·坎宁安(Ward Cunningham)发明的一个术语,以提醒我们,如果我们不时支付利息,那么可以肯定的是,最终这将使我们的软件难以维护,并且难以添加新功能甚至找不到根源。缺陷原因。 该插件具有非常强大的配置,在四个方面代表了技术债务。

  • 债务比率:当前技术债务与最大可能技术债务的百分比。
  • 偿还费用:支付所有利息和清理代码所需的货币费用
  • 报销工作:与上述相同,以工时计算。
  • 细目:分布到以下轴:复制,违规,复杂性,覆盖范围,文档和设计

确保检查其措施以避免陷入意粉代码之类的不良情况

sonar 集成maven_大数据_03

我很确定有很多有趣的Sonar插件,因此请随时在列表中发表您的评论。

参考: 5 + 1 Sonar插件,您绝对不能错过我们的JCG合作伙伴 Papapetrou P. Patroklos,该博客在Only Software issues博客上。

相关文章 :

  • 我的测试和代码分析工具箱
  • 任何软件开发公司应存在的服务,实践和工具,第1部分
  • Java工具:源代码优化和分析
  • 测量代码复杂度
  • 使用FindBugs产生更少的错误代码

翻译自: https://www.javacodegeeks.com/2012/01/51-sonar-plugins-you-must-not-miss.html