maven-sonar-plugin可以进行本地分析吗?

时间:2012-05-30 08:22:25

标签: maven sonarqube

我正在配置一个多模块maven项目,该项目强制在 verify 阶段执行 sonar:sonar

我还使用声纳的build-breaker-plugin来避免在声纳引发某些警报的情况下部署模块。

这种方法的问题是开发人员应该去声纳服务器检查警报。这并不是那么糟糕,但如果几个用户试图同时分析同一个模块,则无法知道最后/当前分析是否有您的警报。

背景:我们有一个CI系统,可以每小时构建所有模块。因此,有时这会与某些开发人员部署(强制分析)

发生冲突 恕我直言,只有CI系统应该将分析提交给声纳服务器,因为CI具有持续提交和部署的代码。但开发人员应该只在本地检查他的更改。

那么,为什么我们在开发人员构建中强制进行分析呢?避免部署不符合代码质量阈值的模块(声纳的构建断路器插件有助于此)。

有一种方法可以配置maven-sonar-plugin来执行此操作吗?

  • 开发人员构建中的本地分析。
  • CI构建中的服务器分析

1 个答案:

答案 0 :(得分:1)

根据我的理解,你可能应该有一个Sonar的第一个实例,它只在构建期间用于破坏它,如果你的质量要求不符合,第二个实例是你的CI系统使用的那个,那就是您的产品参考。如果您真的想要强制执行您的流程并确保不会将违反这些要求的代码推送到您的SCM系统中,那么您可以在预提交挂钩上绑定Sonar分析。但这对我来说似乎有点极端......

在SonarSource,我们没有选择“因违规而阻止提交”的方法。实际上,只要你管理它,我们就会认为有一些技术债务(=违规)是可以的。管理技术债务意味着审查每个在Sonar中的违规行为,并将其修复到代码中或将这些违规行为影响到行动计划,主要思想是技术债务在发展冲刺结束时不应该增加。这就是Sonar的评测功能的用途。 Sonar提供小工具来监控评论和新违规行为的发展,而无需进行审核。