有没有办法在SonarQube中添加额外的代码指标而无需编写我自己的插件?

时间:2015-12-04 23:28:38

标签: java sonarqube metrics

我想在我的团队代码库中开始跟踪代码指标。我们认为,我们主要关注的五个指标是对象之间的耦合,Halstead努力,缺乏方法的凝聚力,加权方法复杂性和类的响应。有很多工具可以一次性测量我们代码中的这些指标,但我想跟踪它。一位同事提到了声纳(现在显然叫做SonarQube)。

我设置了一个实例,看起来它有我需要的时间轴支持,但它缺乏代码复杂性和代码覆盖率之外的任何良好代码指标。大量的搜索结果告诉我一些方法实际上是如何实际使用的,但是被弃用和删除了。我需要这些指标,无论它们是否得到官方支持,还是通过社区插件,但我还没有找到添加它们的非弃用指标。

存在手动指标,但我们有数百个课程,而且我不想每周为每个课程进行手动测量。这将成为一份全职工作。我宁愿避免编写自己的插件。如果我走这条路,我不妨写一个每周运行一次的cron作业来获取最新信息,使用本地工具(目前使用MetricsReloaded)获取我需要的分析,并将本地分析转储到本地数据库中我以后可以做任何事。这些方法看起来很差,而且必须存在更好的方法,对吗?

如何让SonarQube跟踪这些指标?

3 个答案:

答案 0 :(得分:4)

如果我理解正确,您希望在SonarQube中导入工具的结果,以便随时跟踪某些指标。

我认为最好的做法是编写一个不计算指标的插件,而是导入工具生成的报表。这可能是最好的可重复使用选项,您不必重新发明轮子并从SonarQube功能中受益。 这就是通常编写覆盖插件的方式(对于java)。您可以查看Cobertura或Clover插件甚至Generic Coverage插件,了解SonarSource如何编写这些插件。

答案 1 :(得分:1)

您似乎没有使用适合您的用例的工具。声纳不是为了逐步增加工作。 Teamscale正是您所寻找的。它是一种增量分析工具,可以跟踪一段时间内的指标和质量缺陷。 你可以

  • 从各种内置指标和分析
  • 中进行选择
  • 为Teamscale或
  • 实施您自己的自定义检查
  • 自动从外部工具上传指标和结果。与其他任何发现一样,Teamscale也会随着时间的推移跟踪这些。

我认为第三个选项是您的用例所需。

只是旁注:如果您真的想提高代码质量,可能需要重新考虑您选择的指标。您应该阅读以下blog post,这解释了为什么McCabe是一个糟糕的选择。您提到的指标也适用相同的论点。

答案 2 :(得分:-1)

让我们试试SourceMeter - 源代码分析工具。 它有很多源代码指标。 SonarQube还有一个插件。