1. 安装说明
1.1 下载两个
- SonarQube 服务器:显示源代码分析结果的服务器软件
安装社区版:https://www.sonarqube.org/downloads/
- SonarQube 扫描器:用于分析源代码的工具
Windows 64-bit:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
1.2 解冻
在 C:\ 下创建一个名为"sonarqube"的目录,并将其解压缩到下载的两个目录下。
C:\sonarqube\sonarqube-8.6.1.40680
C:\sonarqube\sonar-scanner-4.5.0.2216-windows
1.3 设置环境变量
启动"控制面板",然后单击"系统→安全"→"系统高级设置"→"环境变量"。
选择系统环境变量的"路径",然后单击"编辑"。
3.点击"新建",设定刚才解压的SonarQube的Server和Scanner的路径。
- Server:"C:\sonarqube\sonarqube-8.6.1.40680\bin\windows-x86-64"
- Scanner:"C:\sonarqube\sonar-scanner-4.5.0.2216-windows\bin"
1.4 动作确认
- 启动命令提示符。
2.输入"startSonar.bat"进行执行。
3.访问http://localhost:9000/ 并确认启动。 如果您看到类似于下图的屏幕,则成功。
如果要停止服务器,可以通过在命令提示符处按 Ctrl+C 来停止它。
初始用户/密码:admin/admin
需要修改初始密码
2.使用方法(Java时)
2.1 创建和设置项目
启动命令提示符,运行"startSonar .bat"以启动 SonarQube 服务器(如果已启动,则不需要)
单击屏幕右上角的登录以登录。
Login:admin
Password:admin单击"Create new project"。 如果没有"Create new project",请单击画面右上角的+标记,选择"Manually"。
4.输入Project key和Display name。 内容可以是任意的(signon、sales等),但要记住以后使用。
5.输入token,点击"Generate"。 内容可以是任意的,但请记住,生成后的令牌将在以后使用。 Generate后,单击 Continue。
- 由于将显示类似于下图的屏幕,因此选择"Java"和"Gradle",设置已完成。
- 在要分析的源的build.gradle的plugins中追加"id "org.sonarqube" version "2.7"。
8.build.gradle在同一目录中创建"sonar-project.properties",记述如下。
现在,您已完成设置。
sonar.projectName=[项目名称]
sonar.projectKey=[项目密钥]
sonar.projectVersion=1.0
sonar.sources=。
sonar.java.binaries=.
项目名称和项目键描述在项 4 中创建的内容。
2.2 代码解析
单独启动命令提示符。 此外,如果您尚未启动 SonarQube 服务器,请启动它。
转到要分析的源的根目录(包含 sonar-project.properties 的目录)。
运行以下命令进行分析。
sonar-scanner
^ -Dsonar.projectKey=[项目键]
^ -Dsonar.sources=。 -Dsonar.host.url= http://localhost:9000^ -Dsonar.login=[令牌]
项目密钥描述在项目 2.1 中的 4 中创建的项目密钥。
令牌描述在项目 2.1 中的 5 中创建的内容。
如果显示"EXECUTION SUCCESS",则成功。
示例
sonar-scanner -Dsonar.projectKey=signon -Dsonar.sources=. -Dsonar.host.url=http://localhost:9000 -Dsonar.login=77e84f7d3de9ea0c6909294cfb8541b66cf75aa6
如果成功,http://localhost:9000/访问并创建的项目,将显示类似于下图的屏幕。
-
上图的蓝色数字是评论的数量,单击以查看评论。
单击评论以了解更多信息。 「Why is this an issue?」 还显示解决方案。
- 由于无法读取 lombok,因此不需要与 lombok 相关的审阅。 如下图所述,Remove this unused... 是显示的内容。
但是,Remove this unused... 显示的所有内容都不一定与 lombok 相关,因此需要确认。
- 支持审阅后,请再次运行项目 3 中的命令,以确保没有审阅。
3.使用方法(C#时)
如果尚未安装 Java (JDK),请安装它,然后再继续。
3.1 JAVA_HOME设置
如果环境变量具有以下设置,则不需要此步骤: 请跳到"3.2 创建和设置项目"。
变量名称:JAVA_HOME
变量值:[JDK 安装位置]
• 确保变量值中未指定 bin(如果设置了类似于下图的变量,则没有问题)
- 启动"控制面板",然后单击"系统→安全"→"系统高级设置"→"环境变量"。
- 单击"新建用户环境变量"
- 将变量名称设置为JAVA_HOME",将 JDK 安装到变量值,然后单击"确定"。
3.2 创建和设置项目
启动命令提示符,运行startSonar.bat"以启动SonarQube服务器(如果已启动,则不需要)
单击屏幕右上角的登录以登录。
Login:admin
Password:admin单击"Create new project"或画面右上角的+标记,选择"Manually"。
- 输入 Project key 和 Display name。 内容可以是可选的(master等),但请稍后使用。
- 输入 token,然后单击"Generate"。 内容可以是任意的,但请记住,生成后的令牌将在以后使用。 Generate后,单击 Continue
此时-》token for master: dbe40ac79a8df19f50ff0182e03e20e9817c0909
- 屏幕如下图显示,因此"C# 或 VB。 NET"。
3.3 安装 SonarScanner for MSBuild
如果您已经安装了 SonarScanner for MSBuild,请跳到"分析 3.4 代码"。
- 项目设定完成后,显示"Download and unzip the Scanner for MSBuild",因此点击"Download"。
- 单击".NET Core 2.0+"下载SonarScanner for MSBuild。
将之前下载的内容解压缩到 C:\ 下的"sonarqube"目录中。
C:\sonarqube\sonar-scanner-msbuild-5.0.4.24009-netcoreapp2.0启动"控制面板",然后单击"系统→"和"系统→"和"系统→""环境变量"。
选择系统环境变量的 Path,然后单击"编辑"。
单击"新建",键入路径,然后单击"确定"。
·C:\sonarqube\sonar-scanner-msbuild-5.0.4.24009-netcoreapp2.0\sonar-scanner-4.4.0.2170\bin
([SonarScanner for MSBuild的安装目的地]\bin)
- 启动命令提示符,键入并运行"dotnet tool install --global dotnet-sonarscanner --version 4.8.0"。
3.4 分析代码
单独启动命令提示符。 此外,如果您尚未启动 SonarQube 服务器,请启动它。
转到要分析的代码.sln目录(包含代码的目录)。
运行以下命令
dotnet sonarscanner begin ^
/k:[项目密钥] /n:[项目名称] /v:"1.0" /d:sonar.host.url="http://localhost:9000"|/d:sonar.login=[令牌]
项目键和项目名称描述在项目 3.1 中的 4 中输入的内容。
令牌描述在项目 3.1 中的 5 中创建的内容。
示例
dotnet sonarscanner begin /k:"master" /n:"master" /v:"1.0" /d:sonar.host.url="http://localhost:9000"/d:sonar.login="dbe40ac79a8df19f50ff0182e03e20e9817c0909"
master>dotnet sonarscanner begin /k:"master" /n:"master" /v:"1.0" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="dbe40ac79a8df19f50ff0182e03e20e9817c0909"
SonarScanner for MSBuild 4.8
Using the .NET Core version of the Scanner for MSBuild
Pre-processing started.
Preparing working directories...
12:29:20.603 Updating build integration targets...
12:29:20.622 Fetching analysis configuration settings...
12:29:21.292 Provisioning analyzer assemblies for cs...
12:29:21.293 Installing required Roslyn analyzers...
12:29:21.581 Provisioning analyzer assemblies for vbnet...
12:29:21.582 Installing required Roslyn analyzers...
12:29:21.607 Pre-processing succeeded.
- 接下来是"dotnet build ." 并运行它。 "生成成功。 没有问题,如果显示。
master>dotnet build .
用于 .NET 的 Microsoft (R) 生成引擎版本 16.8.3+39993bd9d
版权所有(C) Microsoft Corporation。保留所有权利。
正在确定要还原的项目…
....
15 个警告
0 个错误
已用时间 00:00:11.30
- 最后,运行以下命令。
master>dotnet sonarscanner end /d:sonar.login="dbe40ac79a8df19f50ff0182e03e20e9817c0909"
SonarScanner for MSBuild 4.8
Using the .NET Core version of the Scanner for MSBuild
Post-processing started.
....
WARN: This may lead to missing/broken features in SonarQube
INFO: CPD Executor 5 files had no CPD blocks
INFO: CPD Executor Calculating CPD for 48 files
INFO: CPD Executor CPD calculation finished (done) | time=55ms
INFO: Analysis report generated in 130ms, dir size=415 KB
INFO: Analysis report compressed in 384ms, zip size=178 KB
INFO: Analysis report uploaded in 40ms
INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=master
INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
INFO: More about the report processing at http://localhost:9000/api/ce/task?id=AXeE27fnOLnc-t1OZ2HP
INFO: Analysis total time: 5.290 s
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 7.695s
INFO: Final Memory: 8M/68M
INFO: ------------------------------------------------------------------------
The SonarQube Scanner has finished
12:35:28.235 Post-processing succeeded.
如果成功,http://localhost:9000/访问并创建的项目,将显示类似于下图的屏幕。
- 上图的蓝色数字是评论的数量,单击以查看评论。
单击评论以了解更多信息。 「Why is this an issue?」 还显示解决方案。
- 支持审阅后,请再次运行项目 3、4 和 5 中的命令,以确保没有审阅。