如何获取使用sonarqube创建的sonar-report.json文件?

And*_*son 2 jenkins-plugins sonarqube

我正在运行 Sonarqube 5.3 并将其与 Jenkins 集成。我想将 Sonareqube 问题作为 Gerrit 评论发布。

然后我需要指定从sonarqube生成的数据的路径和名称,例如build/sonar/sonar-report.json

文件 sonar-report.json 未生成,我发现 Sonarqube 的一些设置应该使 sonarqube 创建该文件。

sonar.report.export.path=sonar-report.json
sonar.issuesReport.html.enable=true
sonar.issuesReport.json.enable=true
sonar.issuesReport.console.enable=true
Run Code Online (Sandbox Code Playgroud)

我尝试在文件中设置这些

<sonar-installation-directory>/conf/sonar.properties
Run Code Online (Sandbox Code Playgroud)

我已经重新启动了 Sonare 服务并重新启动了计算机,但 sonar-report.json 文件仍然没有创建。

Nic*_*eam 5

这些属性并不意味着在服务器端配置,它们在扫描仪端传递,并且仅对预览模式下的分析有效(顺便说一句,不需要sonar.issuesReport.json.enable)。这就是SonarLint for Command Line的用途。

为什么是预览模式?因为目标是分析差异(评论您案例中的代码审查)。如果代码尚未推送到存储库,您不希望将完整分析提交到 SonarQube。

例子:

$ sonar-runner -Dsonar.analysis.mode=preview -Dsonar.issuesReport.html.enable=true -Dsonar.report.export.path=report.json -Dsonar.host.url=http://localhost:9000 
[...]
$ ls .sonar/
issues-report  report.json
Run Code Online (Sandbox Code Playgroud)

(小心 JSON 报告,看起来它最终会被删除,请参阅SONAR-7247

PS:我猜你可能正在使用sonar-gerrit Jenkins 插件,它本质上说的是同样的事情:

该插件旨在与在预览模式下在项目上运行的 SonarQube 提供的报告配合使用