如何使用 Sonar maven 插件根据 Quality Gate 验证本地代码?

How can I use Sonar maven plugin to validate local code against Quality Gate?

我们的项目与 SonarQube 远程服务器集成,配置了 Quality Gate。 每次我们在 master 中提交时,我们的 gitlab 都会执行 sonar:sonar,如果代码不符合 Quality Gate 指标,构建将被拒绝。

在推送到 Gitlab 之前,我想在本地做同样的事情。

如果我在本地执行 sonar:sonar 指向远程 SonarQube 服务器,它会验证 Quality Gate 并将指标保存在服务器中。

但是,我想在不保留指标的情况下做同样的事情,因为它是我自己的分支。 因此,如果我使用 -Dsonar.analysis.mode=preview 它不会保留指标 但它不会检查指标 ( Quality Gate )

有什么办法吗?

这是不可能的,因为质量门检查的各种条件通常是复杂和综合处理的结果,只能由 SonarQube 的计算引擎部分完成。

这就是为什么目前 GitHub Pull Request 之类的插件仅报告在拉取请求中修改的代码段中发现的问题。

好吧,正如 Fabrice 所说,目前还不可能做这样的事情。

我在工作中遇到了类似的预览问题,所以我只是在我的计算机上安装了一个 SonarQube 服务器的本地实例,所有 rules/quality profiles/quality 盖茨作为我的公司。

这样,我可以 运行 根据需要使用尽可能多的 sonar:sonar,在提交之前在本地测试它,只需指定 "Dsonar.host.url"参数.

我不知道这是否能解决你的问题,但绝对是一个出路。