目录

  • 前言
  • 正文
  • 问题一、ERROR: Not authorized. Please check the properties sonar.login and sonar.password.
  • 问题二、SCM provider autodetection failed. Both svn and git claim to support this project. Please use sonar.scm.provider to define SCM of your project.
  • 问题三、ERROR: Not inside a Git work tree
  • 结尾

前言

Sonar 是一个开源平台,用于管理源代码质量的工具。Sonar 不只是一个质量数据报告工具,更是代码质量管理的平台。它支持非常多的语言,包括常见的 Java、PHP、C#、C、Golang、JS等。在安装部署和使用的过程会经常遇到各种问题,今天简单梳理一下自己遇到的几个问题。

正文

问题一、ERROR: Not authorized. Please check the properties sonar.login and sonar.password.

一般工程管理界面会给出执行命令的实例,如下图所示:

sonar 使用常见问题总结_sonar

我们修改路径和 key 之后,执行该示例命令,发生了报错(我就知道没有那么简单),报错详情如下:

INFO: Scanner configuration file: G:\project\LLL\sonar-scanner-4.6.2.2472-windows\bin..\conf\sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.6.2.2472
INFO: Java 11.0.11 AdoptOpenJDK (64-bit)
INFO: Windows 10 10.0 amd64
INFO: User cache: C:\Users\PC.sonar\cache
INFO: Scanner configuration file: G:\project\LLL\sonar-scanner-4.6.2.2472-windows\bin..\conf\sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: Analyzing on SonarQube server 9.1.0
INFO: Default locale: "zh_CN", source code encoding: "GBK" (analysis is platform dependent)
INFO: Load global settings
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 11.837s
INFO: Final Memory: 5M/20M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarScanner execution
ERROR: Not authorized. Please check the properties sonar.login and sonar.password.
ERROR:
ERROR: Re-run SonarScanner using the -X switch to enable full debug logging.

报错截图:

sonar 使用常见问题总结_git_02

解决:

报错原因是缺少用户密码,增加 -D"sonar.password=123456" 参数,具体命令如下:

sonar-scanner.bat -D"sonar.projectKey=bag" -D"sonar.sources=G:\project\LLL\bag" -D"sonar.host.url=​​sonar.lozen.com​​" -D"sonar.login=lozen"  -D"sonar.password=123456"

执行结果:

INFO: More about the report processing at ​​sonar.lozen.com/api/ce/task…​​ INFO: Analysis total time: 4.726 s
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 55.062s
INFO: Final Memory: 8M/30M
INFO: ------------------------------------------------------------------------

好啦,已经这里的问题已经解决了。

问题二、SCM provider autodetection failed. Both svn and git claim to support this project. Please use sonar.scm.provider to define SCM of your project.

  上面的问题一解决之后,我们回到项目管理页面查看执行结果,发现了这个报错信息。

解决:

在执行检测命令时,增加 -D"sonar.scm.provider=git" 参数,具体命令如下:

sonar-scanner.bat -D"sonar.projectKey=bag" -D"sonar.sources=G:\project\LLL\bag" -D"sonar.host.url=​​sonar.lozen.com​​" -D"sonar.login=lozen" -D"sonar.password=123456" -D"sonar.scm.provider=git"

问题三、ERROR: Not inside a Git work tree

上面的问题解决了,又出现了这个报错,真是踩完一坑又一坑,坑坑在等你。

报错信息:

INFO: Indexing files...
INFO: Project configuration:
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 6.411s
INFO: Final Memory: 7M/24M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarScanner execution
ERROR: Not inside a Git work tree: G:\project\LLL\sonar-scanner-4.6.2.2472-windows\bin
ERROR:
ERROR: Re-run SonarScanner using the -X switch to enable full debug logging.

报错截图:

sonar 使用常见问题总结_代码规范_03

解决: 报错信息非常明确,需要我们把工具目录放到指定的项目工程中去,再运行命令,问题解决。

最终的结果在 sonar 后台看到如下信息:

sonar 使用常见问题总结_git_04

但是,截图左下角提示工程主分支是空的,让我很苦恼,明明不是空的呀,看来还得继续排查,这部分内容让我们放到下一期吧。

结尾

sonar 确实是一个好工具,但是问题也不少,今天关于 sonar 使用过程中遇到的问题就介绍这么多,晚安。