2

在 sonarqube 中启用构建断路器插件时,我发现无法再运行本地分析,因为分析以失败告终。并且没有详细的问题列表可用。它阻止了插件的使用,因为开发人员无法在本地检查他们的签入是否会在提交更改之前破坏构建,但如果提交更改,构建将中断......目前我可以想象的是为本地安装另一台服务器通过禁用构建断路器插件进行分析,但它带来了其他问题,例如在两个不同的声纳实例之间同步配置。有更好的主意吗?

此致,

4

2 回答 2

7

正确的方法是在声纳插件配置中添加本地分析属性:

sonar.buildbreaker.skip=true

在此处输入图像描述

这样,构建期间的声纳分析将被构建中断插件中断,同时开发人员可以在签入前在 Eclipse 中本地分析和修复问题。

于 2013-11-06T01:34:25.530 回答
0

你是什​​么意思“本地”分析?

大多数运行 Sonar 的方法(runner、ANT 插件、Maven 插件)都会始终联系 Sonar 服务器并尝试上传分析结果。我的建议是将 Sonar 作为集成服务器中的后期构建步骤运行(我强烈推荐 Jenkins)。这确保只有一台机器与 Sonar 对话,并具有保持 Sonar 凭证安全的第二个好处。

执行本地分析的唯一真正方法是在 Eclipse 中运行 Sonar(使用 Sonar Eclipse 插件)。这是实现所需用例的推荐方法,开发人员在提交代码之前进行分析(然后可以由您的集成服务器获取,自动更新 Sonar)。

笔记:

  • 在早期版本的 Sonar 中,如果同时执行多个分析运行,则会引发错误。较新的版本有一个锁定机制来防止声纳服务器的并行更新,这可能解释了您对构建被“阻止”的观察。
  • Sonar 是一个胖客户端应用程序。分析作为构建过程的一部分进行,然后将结果上传到服务器。
于 2013-11-05T16:55:03.933 回答