如何在 sonarqube 5.0 中使用 git 作为 scm 提供程序(使用 sonar-runner)

Posted

技术标签:

【中文标题】如何在 sonarqube 5.0 中使用 git 作为 scm 提供程序(使用 sonar-runner)【英文标题】:How can I use git as the scm provider in sonarqube 5.0 ( using sonar-runner ) 【发布时间】:2015-04-02 10:23:59 【问题描述】:

我关注 sonarqub 的官方支持 http://docs.sonarqube.org/display/SONAR/SCM+support

我得到了上面的错误。

我是否错过了需要配置的东西,或者配置错误

08:46:33.723 INFO - Sensor SCM Sensor...
08:46:33.897 INFO - SCM provider for this project is: git
08:46:33.898 INFO - Retrieve SCM blame information...
08:46:33.915 INFO - 632 files to be analyzed
08:46:34.377 INFO - Author: PersonIdent[Not Committed Yet, , Tue Feb 3 08:46:34 2015 +0000]
08:46:34.379 INFO - Source commit: null
08:46:34.377 INFO - Author: PersonIdent[Not Committed Yet, , Tue Feb 3 08:46:34 2015 +0000]
08:46:34.924 INFO - Source commit: null
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
Total time: 1:01.699s
08:46:35.891 INFO - Author: PersonIdent[Not Committed Yet, , Tue Feb 3 08:46:35 2015 +0000]
08:46:34.930 INFO - Author: PersonIdent[Not Committed Yet, , Tue Feb 3 08:46:34 2015 +0000]
08:46:35.930 INFO - Source commit: null
Final Memory: 27M/318M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: Unable to blame file

非常感谢。

【问题讨论】:

同样的事情,我什至修复了行尾(已知问题),但这并没有帮助。可能是另一个 SCM 插件或 maven 库的副作用。您是否尝试过禁用所有其他 SCM 相关插件? 现在可以将sonar.scm.disabled=true 添加到我的sonar.properties 文件中。在修复之前,也许这会对您有所帮助。 @Stephan 谢谢,我试过了,但对我不起作用。 @Stephan 将其添加到我的 sonar.properties 文件中不起作用(SonarQube 5.0.1)。但是,在我的 Jenkins Sonar 配置中将其添加为“附加属性”。 我们在哪里可以提供声纳中的爵士存储库 URL? 【参考方案1】:

这是因为在运行分析时,SonarQube 期望所有文件都应该提交。

确实,SonarQube 假设当您运行标准分析(将数据推送到服务器)时,项目的单个文件不应有任何未提交的更改,因为这可能会推送不相关的信息与存储库中的真实源代码。这就是分析失败的原因。

运行预览分析时显然不是这样:由于这种分析不会将数据推送到服务器,仅在本地报告问题,因此未提交的更改不是问题,因此分析不会失败.

我已更新 the documentation 以更清楚地说明这一点。

【讨论】:

不幸的是,生成的代码也不是这样。我们从 Jnario 代码生成单元测试。 SonarQube 看起来非常棒,但是当您不使用 Jenkins 进行 CI 时,很难上手。对于像我这样的初学者来说,更清晰的文档会非常有用。 @fabrice-sonarsource-team 我们使用 Gitlab,我试图让 Sonar 将 git 识别为 scm。即使在从github.com/gabrie-allaigre/sonar-gitlab-plugin 获取 Gitlab 插件并放入 SONARQUBE_HOME/extensions/plugins 并重新启动 SonarQube 后,我仍会在 Sonar 5.6.3 中遇到问题。当我将 maven 项目指向具有 条目的 maven pom 的 SonarQube 服务器时,我收到此错误:无法在项目上执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.5.0.1254:sonar:SCM provider 设置为“git”,但未找到此密钥的 SCM 提供程序。未安装 SCM 提供程序

以上是关于如何在 sonarqube 5.0 中使用 git 作为 scm 提供程序(使用 sonar-runner)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 sonarqube 5.0 中使用 git 作为 scm provider

SonarQube 检查代码然后传递给 git/repo

如何在构建docker镜像时执行SonarQube扫描.NET Core应用

如何在 Jenkins 中为 sonarqube 配置 TSLint 插件?

SonarQube 扫描仪失败并出现“不在 git 工作树内”错误

git jenkins SonarQube手动代码质检