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 分析代码

创建新项目

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

配置项目

  1. 在 Create Project 页面中,输入项目的 Project Key(项目键)和 Project Name(项目名称)。
  2. 点击 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@4e25154f-org.sonar.server.platform.db.CheckDatabaseCharsetAtStartup': Initialization of bean failed; nested exception is Database collation must be case-sensitive and accent-sensitive. It is Chinese_PRC_CI_AS but should be Chinese_PRC_CS_AS.

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

  1. 备份数据库:在进行任何更改之前,确保你已经备份了数据库,以防出现意外情况。
  2. 更改数据库排序规则:
    • 如果你使用的是 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 clean-up directory D:\Program Files\sonarqube-10.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进程。
    关闭所有进程后,重启,解决该问题。
    在这里插入图片描述
### Windows 系统 SonarQube 10.0 安装配置教程 #### 准备工作 在开始安装前,需确认已满足以下条件: - 已安装 Java JDK 版本不低于 11 [^1]。 - 下载并解压最新版的 SonarQube 和 SonarScanner。 #### 安装步骤 1. **Java环境配置** - 确保系统中已经安装了 OpenJDK 或 Oracle JDK 的版本为 11 及以上。可以通过命令 `java -version` 来验证当前系统的 Java 版本是否符合要求 [^1]。 2. **下载 SonarQube** - 前往官方站点获取对应版本的压缩包 (https://www.sonarsource.com/why-us/products/) 并将其保存到本地磁盘的一个目录下 [^2]。 3. **解压软件包** - 使用 WinRAR 或其他工具将 `.zip` 文件提取至目标位置,比如 `C:\sonarqube\`. 4. **启动服务** - 打开 CMD 终端窗口进入 bin 目录下的 windows-x86-64 子文件夹运行 start.bat 脚本来初始化服务器进程 : ```batch cd C:\sonarqube\bin\windows-x86-64\ StartSonar.bat ``` 5. **访问 Web 控制台** - 默认情况下可通过浏览器输入地址 http://localhost:9000 登陆管理界面,默认用户名密码均为 admin/admin [^2]. 6. **插件扩展支持** - 如果需要额外功能模块的支持,则可以按照需求从市场或者社区贡献者那里获得相应 jar 包形式组件,并放置于 extensions/plugins 中完成加载操作后再重新激活应用实例来生效更改设置 [^2]: 7. **数据库连接调整** - 对于生产环境中推荐采用关系型持久化存储方案替代内置 H2 数据库引擎;具体做法涉及编辑 conf/sonar.properties 文档中的 jdbc.url 参数指向外部 MySQL/MSSQL 实例以及创建匹配表结构等工作流程 [^3]. 8. **客户端扫描器设定** - 修改位于 C:\sonar-scanner-<version>\conf\sonar-scanner.properties 这里的全局属性定义部分使之适应实际项目布局情况从而实现自动化分析作业执行过程 . ```properties # Example of properties to be set in this file. sonar.projectKey=my_project_key sonar.sources=src/ ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值