云计算百科
云计算领域专业知识百科平台

Windows下配置 SonarQube 服务器(超详细有相关问题解决方法)

简介

SonarQube 服务器是一个开源的代码质量管理平台,它专门用于持续分析和测量项目源代码的质量 。通过 SonarQube,我们可以检测出项目中的重复代码、潜在的 Bug、代码规范、安全性漏洞等问题,并通过 SonarQube 的 Web 界面展示出来。 SonarQube 支持对多种编程语言的扫描,包括但不限于 Java、C#、JavaScript、C++、Python 等。它涵盖了编程语言的静态扫描规则,包括代码编写规范和安全规范 。

SonarQube官方文档 SonarQube官方下载地址

一、环境准备

确保你的系统符合以下要求:

操作系统:Windows 11 内存:至少 4GB RAM 硬盘空间:至少 1GB 可用空间 Java:JDK 17 数据库:SQL Server 或其他支持的数据库版本

确保当前sonarqube版本的要求

例如我使用的是sonarqube 10.7,他需要 JDK17以上的版本。 以下为我部署时用到的所有文件: sonarqube-10.7.0.96327 jdk-17_windows-x64 sonar-scanner-cli-6.2.1.4610-windows-x64 SQL Server 2022

二、下载并安装 Java

SonarQube 需要 Java 环境。你可以从 Oracle 官网下载 JDK 17 的安装包,并按照默认设置进行安装。 安装完成后,配置环境变量JAVA_HOME、CLASSPATH、Path。 设置 JAVA_HOME 环境变量为 JDK 的安装路径,例如:D:\\Program Files\\Java\\jdk-17 设置 CLASSPATH 环境变量为 .;%JAVA_HOME%\\lib 在 PATH 环境变量中添加 %JAVA_HOME%\\bin

三、下载并安装数据库

下载并安装SQL Server 2022(或其他支持的数据库)。 安装完成后,创建一个名为 sonar 的数据库。 在这里插入图片描述

四、安装SonarQube

下载 SonarQube

从 SonarQube 官网下载最新版本的安装包,并解压到指定目录。 在这里插入图片描述

配置SonarQube

在这里插入图片描述 编辑 SonarQube 的 conf\\sonar.properties 配置文件。

# 在配置文件开头增加以下配置
# 数据库连接参数
sonar.jdbc.username=sa
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:sqlserver://你的IP地址;databaseName=sonar;integratedSecurity=false;encrypt=false
# Web配置
sonar.web.host= 你的IP地址
sonar.web.port=9000
# 文件配置
sonar.path.data=data
sonar.path.temp=temp

启动 SonarQube

在 SonarQube 的 bin 目录下,根据你的操作系统执行相应的启动脚本。  bin 目录下 启动StartSonar.bat 在这里插入图片描述

启动成功后,访问 http://localhost:9000 进入 SonarQube 登录界面,默认用户名密码为 admin/admin。 在这里插入图片描述

五、使用 SonarQube 分析代码

创建新项目

  • 在 SonarQube 仪表板中,点击右上角的 Projects(项目)菜单。
  • 点击 Create Project(创建项目)按钮。
  • 配置项目

  • 在 Create Project 页面中,输入项目的 Project Key(项目键)和 Project Name(项目名称)。
  • 点击 Set Up(设置)按钮。
  • 分析项目

    生成项目密钥,按步骤执行分析项目指令

    六、启动 SonarQube相关问题解决

    SonarQube启动过程中会产生三个日志,日志都在${安装目录}/logs/,分别为es.log、sonar.log、web.log。 运行时出现的问题都可以通过查看这三个日志来进行定位解决。

    1、SonarQube 在启动时遇到了数据库排序规则不匹配的问题, SonarQube 需要使用 Chinese_PRC_CS_AS(区分大小写和重音)。 web.log报错

    ERROR web[][o.s.s.p.w.PlatformServletContextListener] Web server startup failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@4e25154forg.sonar.server.platform.db.CheckDatabaseCharsetAtStartup': Initialization of bean failed; nested exception is Database collation must be casesensitive and accentsensitive. It is Chinese_PRC_CI_AS but should be Chinese_PRC_CS_AS.

    解决方案:更改数据库的排序规则。以下是步骤:

  • 备份数据库:在进行任何更改之前,确保你已经备份了数据库,以防出现意外情况。
  • 更改数据库排序规则: • 如果你使用的是 SQL Server,可以使用以下 SQL 命令来更改数据库的排序规则:
  • ALTER DATABASE [YourDatabaseName] COLLATE Chinese_PRC_CS_AS;

    2、SonarQube 在启动时无法绑定到指定的网络地址或端口。 web.log报错

    WARN web[][o.s.p.ProcessEntryPoint] Fail to start Web Server
    java.lang.IllegalStateException: Fail to create or cleanup directory D:\\Program Files\\sonarqube10.7.0.96327\\data\\web\\deploy

    可能的原因包括:

    • sonar.properties 配置 解决方案:确认 SonarQube 的网络配置是否正确。如果 sonar.web.host 配置为 localhost 或其他无效地址,可能会导致绑定失败。需要显式设置为 127.0.0.1 或实际的 IP 地址。

    # Web配置
    sonar.web.host= 你的IP地址
    sonar.web.port=9000

    • 端口冲突 解决方案:如果端口 9000 被占用,可以修改 SonarQube 的端口。 运行以下命令检查端口 9000 是否被占用。

    netstat ano | findstr :9000

    • 运行中的服务未关闭 解决方案:SonarQube 每次重启前都需要手动关闭java进程。 关闭所有进程后,重启,解决该问题。 在这里插入图片描述
    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Windows下配置 SonarQube 服务器(超详细有相关问题解决方法)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!