我们想在项目中使用SonarQube和一些CI工具。声纳服务器URL在主 pom.xml 中配置。
该项目中有几个团队成员。那么当一个团队成员在本地执行本地更改声纳:声纳时会发生什么,然后另一个团队成员用他的本地更改执行声纳:声纳,然后有人执行声纳:声纳(它被配置为分析Git存储库中的源代码)?
SonarQube会显示相关团队成员本地更改的问题吗?如果团队成员本地源代码和Git存储库中的源代码之间存在差异怎么办?
答案 0 :(得分:17)
sonar:sonar
执行分析并将结果发送到服务器 - 假设您使用具有相应权限的帐户的令牌运行它。
开发人员不应在本地运行此类分析以检查其更改。相反,他们应该使用SonarLint,也许pull request analysis(取决于您的基础架构)。
(编辑:拉取请求分析已被弃用,取而代之的是功能更全面的Branch analysis($)。)
稍微扩展一下开发人员不应该在本地使用sonar:sonar
的原因:它以最后保存的方式更新中央服务器。因此,如果您在提交之前编辑了A.java并在本地对其进行了分析,并且我已将A.java重命名为B.java并进行了类似的预提交本地分析......可见的是什么在SonarQube服务器上?取决于最后保存/分析的人。
相反,sonar:sonar
应仅在您已经对整个团队可见的签入代码中使用CI工具运行。
答案 1 :(得分:2)
正如你所说,声纳服务器url在邮件pom.xml中配置,你的团队成员在本地机器上运行声纳:sonar命令。但因为所有引用相同的服务器URL。因此,所有更改都将反映一个共同的项目。如果你想分别为每个团队成员看到差异。那么你需要更新项目名称彼此不同。另外,你会看到最新的一个。
声纳为您提供图形方式的差异。你也可以比较两个版本。
第二,如果用户只有管理员授权,那么他们可以更新声纳服务器。