SonarQube可以对过去的提交进行回顾性分析吗?

时间:2018-04-14 18:43:55

标签: sonarqube software-quality

我正在考虑为我们团队的项目实施代码质量工具。

SonarQube似乎是一个不错的选择。我还没有找到理想的工作流程(我们使用SVN和Maven项目并让Jenkins服务器在每次提交时运行测试)。

除了能够分析当前提交质量的重要性之外,历史演变也非常有趣。

鉴于我们已经有几年的提交,是否可以在设置项目时请求对这些提交进行回顾性分析,或者SonarQube仅适用于来自提交的提交它安装在哪一天?

2 个答案:

答案 0 :(得分:1)

SonarQube仅显示扫描仪上传的数据。您可以签出任何提交(在此处阅读更多内容:Checkout a specific revision from Subversion from the command line),然后执行扫描程序。使用过的扫描仪取决于您使用的构建工具类型:

分析结果将被推送到SonarQube服务器。不幸的是,它始终被视为应用程序的最后一个版本,因此您无法插入"分析一些旧的项目历史承诺。但你真的需要它吗?扫描仪始终分析所有来源。如果有人在三年前添加了一些代码并且没有人删除它,那么它将在服务器上可用。如果代码被删除,那么你就不应该花时间分析一些东西,不再存在什么东西了。这就是为什么SonarQube总是显示项目的最后状态。

您可以阅读由Fabrice Bellingrad撰写的精彩博文(2016年4月6日):Stop planning; fix the leak!

详细了解SonarQube Architecture and Integration

答案 1 :(得分:0)

是的,使用sonar.projectDate分析参数可以实现。它的目的正是您所要的。

引用docs

为分析分配日期。仅当需要追溯创建未分析之前的项目的历史记录时,此参数才有用。格式为yyyy-MM-dd,例如:2010-12-01。由于您无法执行分析日期早于数据库中最新日期的分析,因此您必须按时间顺序分析,以最早的时间重新创建项目历史。

例如,您可以按时间顺序查看最后10个版本标签(最早的一个!)。对于每个标签,将sonar.projectDate设置为创建标签的日期运行分析。