sonar 使用常见问题总结

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

目录

  • 前言
  • 正文
  • 问题一、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.

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

image.png

我们修改路径和 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.

报错截图:

image.png

解决:

报错原因是缺少用户密码,增加 -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.

报错截图:

image.png

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

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

image.png

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

结尾

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


作者简介:大家好,我是 liuzhen007,是一位音视频技术爱好者,同时也是CSDN博客专家、华为云享专家、InfoQ 签约作者,欢迎关注我分享更多干货!


目录
相关文章
|
Java
sonar入门:使用sonar-scanner检测代码
sonar入门:使用sonar-scanner检测代码
2044 0
sonar入门:使用sonar-scanner检测代码
|
3月前
|
Ubuntu 安全 Java
Docker 拉取部署 OpenJDK 全指南:替代方案、实操步骤与最佳实践
本文详解Docker部署OpenJDK全流程:搭建环境、选择eclipse-temurin等替代镜像,避开已弃用的官方镜像,通过Dockerfile构建应用,配置JVM参数与容器资源限制,并提供最佳实践与问题排查方案,助力企业级Java应用高效、安全运行。
1816 1
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
2389 81
高效搭建Nacos:实现微服务的服务注册与配置中心
|
存储 Java 文件存储
🗄️Spring Boot 3 整合 MinIO 实现分布式文件存储
本文介绍了如何基于Spring Boot 3和MinIO实现分布式文件存储。随着应用规模扩大,传统的单机文件存储方案难以应对大规模数据和高并发访问,分布式文件存储系统成为更好的选择。文章详细讲解了MinIO的安装、配置及与Spring Boot的整合步骤,包括Docker部署、MinIO控制台操作、Spring Boot项目中的依赖引入、配置类编写及工具类封装等内容。最后通过一个上传头像的接口示例展示了具体的开发和测试过程,强调了将API操作封装成通用工具类以提高代码复用性和可维护性的重要性。
2549 7
🗄️Spring Boot 3 整合 MinIO 实现分布式文件存储
|
供应链 搜索推荐 API
亚马逊商品列表数据接口(亚马逊 API 系列)
亚马逊的商品列表数据接口为电商从业者、数据分析人员和开发者提供了宝贵的市场洞察。通过该接口,用户可以批量获取商品的关键信息,包括基本信息、价格、销售排名和库存状态等,助力市场分析、竞品研究和商品推荐。开发者需在亚马逊开发者中心注册并申请API权限,使用安全凭证进行认证,支持HTTP/HTTPS协议的GET和POST请求。Python示例展示了如何调用接口获取商品列表,并解析响应数据。应用场景涵盖市场趋势分析、竞品对比、个性化推荐及库存管理,帮助商家优化策略,提升竞争力。
718 13
|
Java jenkins 持续交付
SonarQube安装遇到的常见报错问题启动不起来等
SonarQube安装遇到的常见报错问题启动不起来等
|
NoSQL 网络安全 Redis
redis.exceptions.ConnectionError: Error 111 connecting to 127.0.0.1:6379. Connection refused.
当使用Python连接Redis遇到"ConnectionError: Error 111"时,可能的原因包括Redis未启动、非默认端口监听、防火墙阻拦、配置错误或Redis模块安装不正确。解决方法包括启动Redis、检查端口与防火墙设置、修正配置文件、确保模块正确安装及测试服务器功能。提供了一个Python连接Redis的示例代码,根据实际情况调整IP和端口,以诊断连接问题。
1290 0
|
自然语言处理 物联网 图形学
.NET 技术凭借其独特的优势和特性,为开发者们提供了一种高效、可靠且富有创造力的开发体验
本文深入探讨了.NET技术的独特优势及其在多个领域的应用,包括企业级应用、Web应用、桌面应用、移动应用和游戏开发。通过强大的工具集、高效的代码管理、跨平台支持及稳定的性能,.NET为开发者提供了高效、可靠的开发体验,并面对技术更新和竞争压力,不断创新发展。
728 7
|
jenkins API 持续交付
jenkins学习笔记之十五:SonarSQube API使用
jenkins学习笔记之十五:SonarSQube API使用