1 安装&使用流程
- JDK 17环境搭建
- Sonarqube 10.0安装
- PostgreSQL 12数据库安装
- 配置MSBuild
- 下载安装SonarScanner for MSBuild
- 使用SonarQube分析C#代码并上传到服务器
注意:SonarQube环境搭建时对各个软件的版本都有要求,如果你不确定使用何版本,那么可以参考本文的版本来进行安装,防止出现安装好以后版本不兼容的情况 !
2 JDK环境搭建
这里不做过多赘述,本篇使用JDK 17
3 SonarQube 10.0安装
进入SonarQube官网Download Previous SonarQube Versions | Sonar (sonarsource.com),安装10.0版本,将下载好的压缩包解压至本地,这里我解压的路径为D:\Sonar\sonarqube-10.0.0.68432

配置环境变量
快捷键Win + S, 输入env,打开系统环境变量设置.

在系统变量处新增变量名SONAR_HOME,赋值为SonarQube压缩包解压的路径D:\Sonar\sonarqube-10.0.0.68432

在系统变量path中新增一列,取值为%SONAR_HOME%\bin
 
4 PostgreSQL 12数据库安装
sonar自带的数据库是存储在内存中,一但重启之前的数据全部清空,并且官方只是建议测试用,长期使用建议配置第三方数据库,支持的第三方数据库有Oracle、 PostgreSQL 和 microsoftsqlserver,8.0之后作者说不再支持mysql
下载地址,我下载的12.6版本
 Community DL Page (enterprisedb.com)
 然后一直下一步即可安装完成,中间有个设置密码和端口(默认就好)要记住

打开pgadmin4:
 
 主页如下:
 
 点击连接,输入密码:
 
 创建sonar用户
 如下图,在General中设置用户名为sonar,Privileges中控制权限。用户名为sonar,密码为123456

 
 
 点开Databases,右键 ,创建数据库。数据库名称为:sonar
 
 
 
 连接数据库
 
在sonarQube的安装目录的conf目录下,打开sonar.properties
 配置好数据库名称和密码
#加入到sonarqube安装目录的conf目录下sonar.properties文件中
#配置数据库名称和密码
sonar.jdbc.username=sonar
sonar.jdbc.password=123456
#设为开放
sonar.jdbc.url=jdbc:postgresql://localhost/sonar?currentSchema=public

5 配置MSBuild
如下图所示,在命令行中使用 msbuild -ver 查看MSBuild的版本号,如果无法运行此命令则需要在环境变量中添加MSBuild的Bin目录。

如下图所示,找到MSBuild的Bin目录,并添加到环境变量中

6 下载安装 SonarScanner for MSBuild
- 从 https://github.com/SonarSource/sonar-scanner-msbuild/releases 地址下载安装sonar-scanner-msbuild程序,解压后在环境变量中配置此程序的路径。

 2. 打开sonar-scanner-msbuild程序目录,如下图所示,配置sonar.host.url,sonar.login,sonar.password信息。

- 在命令行中输入 SonarScanner.MSBuild -h查看相应的信息,如下图所示

至此准备工作完成,开始生成代码检测信息并上传检测报告到服务器
7 使用SonarQube分析C#代码并上传到服务器
- 在终端中进入待分析的项目目录

- 如下图所示,运行:
 SonarScanner.MSBuild.exe begin /k:"Dopamine" /n:"Dopamine" /v:"1.0"
 命令,出现成功标记后会在程序目录生成 .sonarqube 文件夹。

**/key(简写k):**对应projectKey即项目的唯一代码,如两套源代码使用同一个projectKey那扫描的结果将混在一起,所以一个项目需要有一个单独的projectKey
**/name(简写n):**对应projectName即项目的名称,为项目的一个显示的名称,建立使用完整的项目名称
**/version(简写v):**对应projectVersion即项目的版本,项目在不同的时期版本也是不一样的,如果方便,可以在sonarQube的服务器中查看到不同的版本代码其中问题的变化
- 通过MSBuild编译项目
输入 MSBuild.exe /t:Rebuild /p:Configuration=Release 编译项目

| 命令 | 含义 | 
|---|---|
| MSBuild -t:Rebuild | 默认为Debug模式 | 
| MSBuild -t:Rebuild -p:Configuration=Release | 指定编译模式为Release | 
| MSBuild MyApp.sln -t:Rebuild -p:Configuration=Release | 指定.sln解决方案和编译模式Release | 
- 上传扫描结果到服务器
运行
 SonarScanner.MSBuild.exe end
 命令,命令运行完成后如下图所示

- 至此扫描操作完成,扫描结果已上传到服务器可以到服务器进行查看。




















