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
命令,命令运行完成后如下图所示
- 至此扫描操作完成,扫描结果已上传到服务器可以到服务器进行查看。