SonarQube部署安装

本文详细介绍了如何在Windows10环境下安装SonarQube10.5,包括JDK、PostgreSQL数据库、sonarscanner的部署,以及C#代码的分析过程。着重于JDK版本选择、环境变量配置和sonarqube服务器的配置与启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
本文主要介绍sonarqube的部署安装


提示:以下是本篇文章正文内容,下面案例可供参考

一、SonarQube是什么?

sonarqube是一个开源的代码分析平台,通过匹配不同的扫描器(sonarscanner)可分析 30 多种不同的编程语言 ,好了,废话不多说,本文只作为个人安装记录留存,如有错误,请多包涵

sonar-scanner-msbuild-5.13.0.66756-net46为分析C#语言需要匹配的扫描器,分析不同语言需要使用不同的scanner,具体要求参照官网https://docs.sonarsource.com/sonarqube/latest/中scanner部分

二、安装包下载

本次安装环境与工具版本:win10+sonarqube-10.5.0.89998(分析工具)+postgresql-12.18-1-windows-x64(数据库)+sonar-scanner-msbuild-5.13.0.66756-net46(.net 下C#语言扫描器)+jdk-17.0.10_windows-x64_bin(JDK)+sonar-l10n-zh-plugin-10.5.jar(汉化包)

1 下载sonarqube,选择目前最新的10.5版本: sonarqube下载地址,下载后根据个人选择放在对应的系统盘路径下,本次安装个人放在D:\tool\目录下

2 数据库下载,本次使用sonarqube10.5适配的postgresql 12版本,适配版本范围参考sonarqube官网安装环境要求,sonarqube下载地址

3 安装jdk17(官网下载,需要oracle账号) 下载地址
注意事项见目录二中的jdk安装;

4 sonarscanner (sonar代码分析扫描器,根据分析不同代码下载不同的Scanner) 下载地址
注意事项见后续安装部分;

5 下载sonarqube中文包 下载地址
下载完成后解压,将jar文件放到D:\tool\sonarqube-10.5.0.89998\extensions\plugins下

三、JDK安装

JDK的安装步骤为一般常规操作:

1.放置JDK文件

下载JDK文件后解压放在电脑自定义目录下:个人放在C:\Program Files\Java\目录下,在这里插入图片描述),

注意事项:官网中安装环境要求(https://docs.sonarsource.com/sonarqube/latest/setup-and-upgrade/installation-requirements/server-host/)指示sonarqube 10.5需要配合jdk 17,且仅适用于通过 ZIP 文件进行安装(下载后缀名为.zip文件的jdk文件而非.exe运行程序安装


个人一开始下载的为.exe运行程序安装jdk,导致后续点击sonarqube安装包下的StartSonar.bat在这里插入图片描述

启动脚本后运行框闪退,查看sonarqube目录下的logs文件会提示Process exited with exit value [Web Server]: 1错误;在这里插入图片描述
这也是本人初期安装时遇到的一个坑;

总结:
1.JDK要根据官网提示下载与sonarqube版本对应的版本
2.JDK文件要下载对应的
zip文件压缩包

2.配置环境变量

标题右击电脑系统属性里的环境变量,在系统变量里添加JAVA_HOME变量名,值为步骤1放置jdk文件的实际路径:C:\Program Files\Java\jdk-17.0.10
在这里插入图片描述
在这里插入图片描述
在 Path路径下,添加实际jdk\bin路径:
C:\Program Files\Java\jdk-17.0.10\bin
在这里插入图片描述
此处需要注意的是,需要看path路径中有没有其他版本的jdk存在,若有,最好删去其他版本jdk,以防sonarqube调用其他版本jdk;

至此:jdk 配置完成,可在命令提示符中通过 java -version查看JDK版本:若版本与安装的一致,则OK;

在这里插入图片描述

四、postgresql数据库安装与配置

1.安装数据库

标题安装步骤根据默认提示依次往下进行即可,唯一注意的是需要配置数据库密码,此密码需要在后续的sonarqube与sonarcanner配置文件使用
在这里插入图片描述

2.新建数据库用户

新建用户sonar,用户名与密码需要在sonarqube配置文件中使用
在这里插入图片描述
填写用户名
在这里插入图片描述
配置密码
在这里插入图片描述
默认勾选两项即可
在这里插入图片描述

3.新建sonar数据库并与步骤2创建的用户管理

在这里插入图片描述
填写数据库名,数据库名称同样用于后续的sonarqube配置文件;关联步骤2新建的sonar用户;
在这里插入图片描述

五、sonarscanner部署

1.修改sonarscanner配置文件

将下载好的sonar-scanner-msbuild-5.13.0.66756-net46.zip解压后,需要修改目录下的SonarQube.Analysis.xml中的配置值:

在这里插入图片描述
上面配置的sonar.login与sonar.password值即为sonarqube网页端配置的用户名与密码(实测好像这里不配置也可以运行,待研究)

2.配置环境变量

系统环境变量Path里面需要把sonarscanner解压文件在电脑上的物理路径加进去;

在这里插入图片描述
本次部署是放在D:\tool\sonar-scanner-msbuild-5.13.0.66756-net46路径下;
且需要将需要使用的msbuild.exe文件所在路径也添加到上述的Path变量里:
在这里插入图片描述
VS2022下的 msbuild路径在:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin下
可在命令提示符在通过msbuild -version 查询当前的msbuild版本:
在这里插入图片描述
注意点:
1.scanner版本要与系统中的msbuild版本匹配否则在后续命令提示框中运行MsBuild.exe /t:Rebuild指令时会报错,报错内容为:
在项目目录下输入MSBuild.exe /t:Rebuild 命令时报错,显示”未能加载文件或程序集“microsoft .build.utilities.core, version=15.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a”或它的某一个依赖项;
一开始测试时下载了最新的sonarscanner,导致一直出这个问题,后来降版本解决了这个问题,看来,并不是最新的才是最好的,兼容才是王道。。

六、配置sonarqube软件

主菜来了。。。sonarqube不用安装,下载后更改配置文件即可,它主要依托JDK,数据库以及scanner进行工作。。

1.更改配置文件

sonarqube软件只需加压后在其conf文件夹下更改配置文件sonar.properties中对应值即可。参考如下,
在这里插入图片描述

  1. sonar.jdbc.url=jdbc:postgresql://localhost/sonar
    localhost/sonar中的sonar为根据在postgresql数据库中实际创建的数据库名称;
  2. sonar.jdbc.username=sonar
    sonar.jdbc.password=admin 用户名与密码为数据库中创建的用户名与密码,
  3. sonar.login=admin
    sonar.password=admin 此处的登录用户名与密码为sonarqube网页登录用户名与密码;
  4. sona.sorceEncoding=UTF-8 为默认配置
    **注意:**上述配置参数后面不要加上注释说明,否则sonarqube调用参数时会把注释一起读入,导致参数值错误,无法登录;

2.启动服务

上述完成后,以管理员身份执行sonarqube文件目录下bin\windows-x86-64文件下的启动组件:(文件目录以实际sonarqube存放路径为准)
在这里插入图片描述
若最终出现SonarQube is operational(SonarQube运行提示),则表明sonarqube部署成功(不代表sonarscanner没问题)。

在这里插入图片描述
可能遇到的问题,见标题三、JDK安装部分。

启动sonarqube过程的日志会存储在sonarqube\logs下,若遇到启动异常问题,可以以日志参考来查找问题。

3.sonarqube代码分析

在浏览器中输入http://localhost:9000/进入登录界面,默认用户名为admin,默认密码为admin,可修改。
在这里插入图片描述
1.新增项目=>手工(暂未使用devops平台导入)

在这里插入图片描述
2.设置完项目名称与项目标志后,点击下一个:
在这里插入图片描述
3.默认选择全局设置后,点击创建一个项目
在这里插入图片描述
4.默认点击“其他CI”(根据实际测试需求选择)
在这里插入图片描述
5.进入创建令牌界面,点击创造:
在这里插入图片描述
6.点击继续
在这里插入图片描述
7.根据被测代码的开发平台依次选择对应的 “构建技术”,和“构建工具”,(本分析代码为使用.NET Framework的C#代码)

在这里插入图片描述
8.到此,需要打开命令提示符(Win+R输入cmd),在命令提示符中先进入被测代码所在文件路径(一直到.sln文件所在目录),(cd /d项目sln所在目录),例如:cd /dE:\codetest\2302CS-fina\2302CS,其中项目目录为E:\codetest\MQTT2
在这里插入图片描述
在这里插入图片描述
9.此后,依次复制sonarqube页面上的三段命令,进行代码分析,如下所示:
在这里插入图片描述
9-1 第一段复制后,若有 “Pre-processing succeeded”提示,则正常,

在这里插入图片描述
9-2 复制第二段指令,正常最后显示0错误即可。
该步会因为sonarscanner版本与当前系统所用的msbuild版本不匹配,导致报错,详见sonarscanner部署章节(第五章节)。
在这里插入图片描述
9-3 复制第三段指令:出现 Post-processing succeeded.则说明检测成功,

在这里插入图片描述
此时,sonarqube网页界面会自动刷新出检测完的项目情况,
在这里插入图片描述
至此,SonarQube部署安装及检测C#代码工作全部结束。

初涉SonarQube,不足之处,多多指正

总结

没啥子总结,再见,各位老铁

### 如何使用 Docker 部署 SonarQube 为了高效地部署 SonarQube 并确保其安全性,建议遵循最佳实践来设置环境。 #### 创建 `docker-compose.yml` 文件 定义一个包含所有必需组件的服务组合文件。此文件应指定所需版本的 SonarQube 和任何依赖项(如数据库)。对于生产环境中,推荐使用 PostgreSQL 或 MySQL 数据库作为后端存储解决方案[^1]。 ```yaml version: '3' services: sonarqube: image: sonarqube:latest ports: - "9000:9000" environment: SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar SONAR_JDBC_USERNAME: sonar SONAR_JDBC_PASSWORD: sonar_password depends_on: - db db: image: postgres:13-alpine environment: POSTGRES_USER: sonar POSTGRES_PASSWORD: sonar_password POSTGRES_DB: sonar ``` 上述配置中,SonarQube 实例监听主机上的 9000 端口,并连接到名为 `db` 的 PostgresSQL 容器实例上运行的数据库服务。 #### 启动容器 利用 Docker Compose 工具简化多容器应用的一键启动过程: ```bash docker-compose up -d ``` 这条命令会读取当前目录下的默认 `docker-compose.yml` 文件并以前台模式启动所有定义好的服务,在后台持续运行这些进程[^3]。 #### 应用安全措施 考虑到安全性方面的要求,应该采取额外步骤保护系统免受潜在威胁的影响。这包括但不限于以下几个方面: - **安全配置基线**:遵照 CIS 基准等权威指南调整操作系统和软件包的安全参数; - **密钥管理**:采用专业的密钥管理系统代替直接嵌入代码中的静态凭证; - **最小权限原则**:仅授予应用程序及其关联资源所需的最低限度访问权; 通过严格遵守以上指导方针,能够有效增强基于 Docker 构建的应用程序的整体防护水平[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值