一、代码扫描说明
1. SonarQube Scanner 下载
![](http://170.106.148.50/html/doc/sonar-scanner/img/1.png)
Windows 64 bit 点击下载扫描工具: http://170.106.148.50/html/doc/sonar-scanner/sonar-scanner.zip
Mac OS X 64 bit 点击下载扫描工具: http://170.106.148.50/html/doc/sonar-scanner/sonar-scanner-macosx.zip
2. 解压到目录
Win 解压到 D:\ ( 依个人习惯 )
![](http://170.106.148.50/html/doc/sonar-scanner/img/2.png)
Mac 解压到 /Users/chuangjisoft02 ( 依个人习惯 )
![](http://170.106.148.50/html/doc/sonar-scanner/img/mac/1.png)
3. 修改 sonar-scanner.properties
修改为 sonarQube 平台地址 ( 默认已修改为 http://172.18.5.64:9000 可跳过此步 )
位于 sonar-scanner\conf\sonar-scanner.properties
sonar.host.url = http://172.18.5.64:9000
Win
![](http://170.106.148.50/html/doc/sonar-scanner/img/3.png)
Mac
![](http://170.106.148.50/html/doc/sonar-scanner/img/mac/2.png)
4. 打开要检查的项目目录
①打开项目目录, 创建文件 sonar-project.properties
![](http://170.106.148.50/html/doc/sonar-scanner/img/4.png)
②编辑 sonar-project.properties, 修改 sonar.projectKey 和 sonar.projectName 为项目名
sonar.sources 为检查的代码路径, 指定文件或”./”检查当前文件夹下
sonar.sources=www/js,www/html 可用 “,” 分隔指定多个路径
![](http://170.106.148.50/html/doc/sonar-scanner/img/5.png)
Mac
![](http://170.106.148.50/html/doc/sonar-scanner/img/mac/3.png)
5. 执行扫描
①运行CMD
Win
可使用 win键+R 快捷键打开”运行”, 输入 “cmd”, 并使用cd 命令进入到待检查项目目录下
或 在待检查项目目录下 按住 左Shift键 + 鼠标右键, 选择“在此处打开命令窗口(W)”
![](http://170.106.148.50/html/doc/sonar-scanner/img/6.png)
Mac
![](http://170.106.148.50/html/doc/sonar-scanner/img/mac/4.png)
②执行检查命令
Win
D:\sonar-scanner\bin\sonar-scanner
![](http://170.106.148.50/html/doc/sonar-scanner/img/7.png)
执行命令完成返回报告结果
Mac
/Users/chuangjisoft02/sonar-scanner-macosx/bin/sonar-scanner
![](http://170.106.148.50/html/doc/sonar-scanner/img/mac/5.png)
执行命令完成返回报告结果
6. 查看检查报告
打开上步返回的报告链接: http://172.18.5.64:9000/dashboard/index/workflow2
或 直接访问 http://172.18.5.64:9000 根据项目名 查找
![](http://170.106.148.50/html/doc/sonar-scanner/img/9.png)
![](http://170.106.148.50/html/doc/sonar-scanner/img/10.png)
![](http://170.106.148.50/html/doc/sonar-scanner/img/11.png)
二、sonarQube 平台简要说明
1. 项目总览
打开项目检查报告, 总览为项目整体情况。
质量阀:是一系列对项目指标进行度量的条件。项目必须达到所有条件才能算整体上通过了质量阈。
点击导航栏中的 “质量阀” 按钮,可查看或更改质量阀的标准
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/1.png)
2. Bugs&漏洞
选择Bug是以Bug作为评判的指标,右侧显示有Bug的Java类,详情可以查看sonar对这个Bug的解释。
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/2.png)
查看某一个Bug的详细信息, 及给出的示例代码
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/3.png)
3. 坏味道
是指在代码之中潜在问题的警示信号。
并非所有的坏味道所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并作出相应的修改。
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/4.png)
4. 债务
每一个问题,sonar都会计算出更改这个问题需要花费的时间。
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/5.png)
通过增加这些时间得出一个总的值称为债务。
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/6.png)
5. 重复率
进入重复页面可查看每个Java类重复比例与重复行
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/7.png)
进入Java类中,黑灰条代表重复的代码, 红色条代表单元测试未覆盖。
点击重复条可以查看与此类含有相同代码的Java类。
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/8.png)
6. 代码别查看
选项卡选择代码
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/9.png)
进入某Java类后可以通过代码右上方的“更多操作”的“显示详情”来查看指标信息。
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/10.png)
![](http://170.106.148.50/html/doc/sonar-scanner/img/2/11.png)
以下为管理员配置说明
三、sonarQube 平台搭建及规则
1. 准备工作
1. JDK 1.8+ (自行安装)
2. Mysql 5.6+ (自行安装)
3. sonarqube 平台
下载最新社区版: https://www.sonarqube.org/downloads/
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/1.png)
2. 安装配置
以下操作均在windows下, 使用 winscp 工具操作:https://winscp.net
①解压 sonarqube-7.2.zip 到 /usr/local
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/2.png)
②修改 sonarqube-7.2 文件夹权限, 右键点击文件夹”属性”, 全部勾选后”确定”
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/3.png)
③打开目录 /usr/local/sonarqube-7.2/conf, 编辑 sonar.properties, 替换内容
注: mysql 版本需大于5.6
sonar.jdbc.url=jdbc:mysql://172.18.5.64:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance sonar.jdbc.username=你的数据库账号 sonar.jdbc.password=你的数据库密码 sonar.sorceEncoding=UTF-8 sonar.login=admin sonar.password=admin
3. 启动&初始化
①打开目录 /usr/local/sonarqube-7.2/bin, 查看系统启动脚本路径
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/5.png)
②本例操作系统为 centos 32位, 所以选择 linux-x86-32
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/6.png)
③打开命令控制台, 如图
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/7.png)
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/8.png)
③执行命令
启动命令: ./sonar.sh start
重启命令: ./sonar.sh restart
停止命令: ./sonar.sh stop
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/9.png)
4. 平台初始化配置
启动后立即访问因为要初始化数据库, 请耐心等待…
打开平台 http://172.18.5.61:9000/sessions/new 默认账号: admin 认密码: admin
选择跳过
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/10.png)
安装中文语音包(日文同理, 平台语音跟随浏览器语言设置)
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/11.png)
重启服务生效插件
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/12.png)
重新登录查看效果, 汉化完成
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/13.png)
5. 插件&第三方插件安装
1. 市场内插件安装, 安装同上述语言插件
默认未安装 .html 插件, 建议安装, 搜索 web
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/14.png)
2. 第三方插件安装
①使用 winscp 打开 sonarqube 安装目录 /usr/local/sonarqube-7.2/extensions/plugins
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/15.png)
②将第三方插件放置到上述目录
css检查插件
http://170.106.148.50/html/doc/sonar-scanner/sonar-css-plugin-4.18.jar
C#检查插件 默认安装的C#插件存在Bug, 请卸载后安装此版本
http://170.106.148.50/html/doc/sonar-scanner/sonar-csharp-plugin-5.10.0.1343.jar
本例直接在此目录删除了默认C# 插件jar包, 并放入5.10版本
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/16.png)
③重启服务使插件生效, 打开 平台 http://172.18.5.61:9000/admin/system
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/17.png)
④查看安装的插件
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/18.png)
6. 代码规则配置
①登录管理员账号, 选择”质量配置” => “创建”
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/19.png)
②选择检测的语言, 创建规则集
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/20.png)
③选择已存在的规则到规则集
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/21.png)
④选择已存在的规则到规则集, 活动 / 挂起
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/22.png)
⑤创建的规则集设置为默认检测配置
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/23.png)
⑥当前规则使用情况查看
![](http://170.106.148.50/html/doc/sonar-scanner/img/3/24.png)
本文链接地址: sonarQube 代码检查搭建&使用