质量管理工具SonarQube

1. 安装说明

1.1 下载两个

  • 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 设置环境变量

  1. 启动"控制面板",然后单击"系统→安全"→"系统高级设置"→"环境变量"。

  2. 选择系统环境变量的"路径",然后单击"编辑"。

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 动作确认

  1. 启动命令提示符。
    2.输入"startSonar.bat"进行执行。

3.访问http://localhost:9000/ 并确认启动。 如果您看到类似于下图的屏幕,则成功。
如果要停止服务器,可以通过在命令提示符处按 Ctrl+C 来停止它。
初始用户/密码:admin/admin

需要修改初始密码


2.使用方法(Java时)

2.1 创建和设置项目

  1. 启动命令提示符,运行"startSonar .bat"以启动 SonarQube 服务器(如果已启动,则不需要)

  2. 单击屏幕右上角的登录以登录。
    Login:admin
    Password:admin

  3. 单击"Create new project"。 如果没有"Create new project",请单击画面右上角的+标记,选择"Manually"。

4.输入Project key和Display name。 内容可以是任意的(signon、sales等),但要记住以后使用。

5.输入token,点击"Generate"。 内容可以是任意的,但请记住,生成后的令牌将在以后使用。 Generate后,单击 Continue。

  1. 由于将显示类似于下图的屏幕,因此选择"Java"和"Gradle",设置已完成。
  1. 在要分析的源的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 代码解析

  1. 单独启动命令提示符。 此外,如果您尚未启动 SonarQube 服务器,请启动它。

  2. 转到要分析的源的根目录(包含 sonar-project.properties 的目录)。

  3. 运行以下命令进行分析。

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/访问并创建的项目,将显示类似于下图的屏幕。

  1. 上图的蓝色数字是评论的数量,单击以查看评论。


单击评论以了解更多信息。 「Why is this an issue?」 还显示解决方案。

  1. 由于无法读取 lombok,因此不需要与 lombok 相关的审阅。 如下图所述,Remove this unused... 是显示的内容。
    但是,Remove this unused... 显示的所有内容都不一定与 lombok 相关,因此需要确认。
  1. 支持审阅后,请再次运行项目 3 中的命令,以确保没有审阅。

3.使用方法(C#时)

如果尚未安装 Java (JDK),请安装它,然后再继续。

3.1 JAVA_HOME设置

如果环境变量具有以下设置,则不需要此步骤: 请跳到"3.2 创建和设置项目"。

变量名称:JAVA_HOME
变量值:[JDK 安装位置]

• 确保变量值中未指定 bin(如果设置了类似于下图的变量,则没有问题)

  1. 启动"控制面板",然后单击"系统→安全"→"系统高级设置"→"环境变量"。
  2. 单击"新建用户环境变量"
  1. 将变量名称设置为JAVA_HOME",将 JDK 安装到变量值,然后单击"确定"。

3.2 创建和设置项目

  1. 启动命令提示符,运行startSonar.bat"以启动SonarQube服务器(如果已启动,则不需要)

  2. 单击屏幕右上角的登录以登录。
    Login:admin
    Password:admin

  3. 单击"Create new project"或画面右上角的+标记,选择"Manually"。

  1. 输入 Project key 和 Display name。 内容可以是可选的(master等),但请稍后使用。
  1. 输入 token,然后单击"Generate"。 内容可以是任意的,但请记住,生成后的令牌将在以后使用。 Generate后,单击 Continue

此时-》token for master: dbe40ac79a8df19f50ff0182e03e20e9817c0909

  1. 屏幕如下图显示,因此"C# 或 VB。 NET"。

3.3 安装 SonarScanner for MSBuild

如果您已经安装了 SonarScanner for MSBuild,请跳到"分析 3.4 代码"。

  1. 项目设定完成后,显示"Download and unzip the Scanner for MSBuild",因此点击"Download"。
  1. 单击".NET Core 2.0+"下载SonarScanner for MSBuild。
  1. 将之前下载的内容解压缩到 C:\ 下的"sonarqube"目录中。
    C:\sonarqube\sonar-scanner-msbuild-5.0.4.24009-netcoreapp2.0

  2. 启动"控制面板",然后单击"系统→"和"系统→"和"系统→""环境变量"。

  3. 选择系统环境变量的 Path,然后单击"编辑"。

  4. 单击"新建",键入路径,然后单击"确定"。
    ·C:\sonarqube\sonar-scanner-msbuild-5.0.4.24009-netcoreapp2.0\sonar-scanner-4.4.0.2170\bin
    ([SonarScanner for MSBuild的安装目的地]\bin)

  1. 启动命令提示符,键入并运行"dotnet tool install --global dotnet-sonarscanner --version 4.8.0"。

3.4 分析代码

  1. 单独启动命令提示符。 此外,如果您尚未启动 SonarQube 服务器,请启动它。

  2. 转到要分析的代码.sln目录(包含代码的目录)。

  3. 运行以下命令

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.
  1. 接下来是"dotnet build ." 并运行它。 "生成成功。 没有问题,如果显示。
master>dotnet build .
用于 .NET 的 Microsoft (R) 生成引擎版本 16.8.3+39993bd9d
版权所有(C) Microsoft Corporation。保留所有权利。

  正在确定要还原的项目…
....
    15 个警告
    0 个错误

已用时间 00:00:11.30
  1. 最后,运行以下命令。
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/访问并创建的项目,将显示类似于下图的屏幕。

  1. 上图的蓝色数字是评论的数量,单击以查看评论。

单击评论以了解更多信息。 「Why is this an issue?」 还显示解决方案。

  1. 支持审阅后,请再次运行项目 3、4 和 5 中的命令,以确保没有审阅。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,780评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,424评论 1 305
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,397评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,576评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,997评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,945评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,107评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,850评论 0 208
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,625评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,804评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,285评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,613评论 3 261
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,291评论 3 242
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,164评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,963评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,096评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,886评论 2 278

推荐阅读更多精彩内容