声纳差速器警报



我在Sonar中有一个质量配置文件,如果自上次分析以来违规次数增加,它将发出警报,例如"如果自上次研究以来关键问题大于0,则发出警报"。

问题是,当您在没有任何代码更改(或者可能是无害的代码更改)的情况下运行后续构建时,警报会被清除。

有没有办法让Sonar将其结果与上次不包含任何警报的分析进行比较?

编辑:我应该明确一点,"与前一版本的差异"选项不适用于我们的设置,因为我们采用的是持续交付策略,在该策略中,每个构建都是具有自己独特版本的潜在候选版本(我们使用日期/时间戳作为版本)。

编辑#2:我还尝试将值sonar.timemachine.period4设置为我想要比较的硬编码版本;但是,在配置警报时无法访问该值,并且在实际分析过程中肯定会忽略该值。

在浏览了Sonar的源代码后,我和一位同事想出了一个变通的解决方案。

使用"以前的版本"比较来设置您的质量配置文件,无论您实际想与上一个好的构建进行比较。

对于每个构建:

  • 使用构建版本查询最后一个VCS标记,并将其分配给名为${last_GOOD_BILD}或类似的变量,供构建过程的其余部分使用
  • 使用-Dsonar.timemachine.period3=${LAST_GOOD_BUILD}运行Sonar(同时确保BuildBreaker插件处于活动状态)
  • 如果您没有收到警报,下一个构建步骤需要在VCS标记中记录您的新版本

这是因为sonar.timemachine.period3与您的质量配置文件中的"以前的版本"设置相同,但您现在正在用您选择的硬指定版本替换它。每次构建时,您只标记通过质量检查的构建,而当您运行Sonar时,您只是在与这些好版本进行比较。

相当可怕,但它让我们的构建管道重新启动并运行。如果上面有什么不清楚的地方,请告诉我,我会更新这个"解决方案"。

CAVEATS:你的版本编号不能是整数-Sonar会将其解释为你当前的分析和你想要比较的分析之间的天数!此外,它的格式不能与yyyy-MM-DD(例如1000-01-01)混淆,就好像它也恰好解析为真实日期一样,那么您无意中指定了日期范围的开始。我还没有见过有人这样指定版本号,但你永远不会知道。

否,但您可以将SonarQube配置为基于先前版本或日期的差异视图。看见http://docs.codehaus.org/display/SONAR/Differential+视图#DifferentialViewsDifferentialViewsSettings

相关内容

  • 没有找到相关文章

最新更新