最近公司需要QA来管理代码质量,于是就上网搜了一下,参考了N个博客,终于完成了扫描的操作,暂且不考量该Scanner对工作的贡献,至少可以让代码完全的跑起来,这也算对于研究了一天的自己一个安慰吧。
接下来记录一下自己学习的过程:
SonarQube是一个开源的代码质量检查工具,它支持20几种编程语言的代码质量管理与检测,提供了可视化的报告,可以快速的定位问题所在;
一.安装
本人电脑是WIN10 64位,安装所需文件:
链接:https://pan.baidu.com/s/1jFydD7ki60Kl2MrHdmFaRA 密码:0syp
1.1 安装jdk
jdk建议版本要求: 1.8+
1.2 安装Mysql数据库
Mysql数据库版本要求: 5.7…
需要记住安装时Mysql数据库的的账号密码;
1.3 安装SonarQube
地址:https://www.sonarqube.org/downloads/
社区版是免费的,我下载的是最新的SonarQube 7.6
下载好之后直接解压即可
1.4 安装sonar-scanner
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
下载好之后解压即可
二. 环境配置
2.1 jdk 环境配置
自行百度;
2.2 Mysql 环境配置
安装好相关的Mysql版本后,需要在数据库中创建一个数据库,命名为sonar
先cmd打开Dos系统,输入: mysql –uroot –p 再输入安装mysql时的密码即可登录mysql,登录
2.2.1 创建数据库名sonar:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
2.2.2 创建一个sonar用户,设置用户名账号密码为sonar:
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
2.2.3 把已创建的数据库sonar的所有权限赋予给sonar用户:
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
查看当前所有数据库名语句: show databases;
为了方便,可以准备一个Navicat Premium去查看,刚创建的库是没有表数据的,配置完后面步骤后,启动SonarQube后,会把表数据写入到sonar数据库;
2.3 SonarQube环境配置
2.3.1 编辑sonar.properties文件
找到解压好的文件:
打开后编辑,加入以下代码。大概加再28行后就行了
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
代码解析:
第一行sonar.jdbc.url: 链接myslq数据库地址,数据库名。sonar问号后面是格式相关;
第二/三行: mysql的账号/密码;
第四行: 支持的编码格式;
第五/六行: sonar登录时的账号密码;默认就是admin
2.3.2 启动SonarQube
以上配置好之后,找到bin\window-x86-64 下的StartSonar.bat启动
启动成功页面:
在浏览器输入: localhost:9000
以下图是因为跑过代码了有数据,点登录即可到登录页面;
输入admin/admin登录;
2.3.3 汉化SonarQube
登录后 先去汉化:
英文版的找对应位置,在关键字输入Chineses Pack Install,汉化完成后,重新打开页面就是汉化版的了;
若正常打开操作完以上步骤,再去看看sonar数据库,即有表数据了;
2.4 sonar-scanner环境配置
2.4.1 配置系统环境变量
新建变量名: SONAR_RUNNER_HOME
变量值: D:\sonar-scanner-3.3.0.1492-windows (安装包解压的路径)
Path :%SONAR_RUNNER_HOME%\bin
2.4.2 验证sonar-scanner是否安装完成:
使用cmd输入: sonar-scanner –v
2.4.3 编辑sonar-scanner.properties文件
打开之后,加入以下代码
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
注意最后一句代码可以取消的原来的注释;代码解析参考已编辑过的sonar.properties文件
三. 项目代码质量扫描
3.1 配置sonar-project.properties文件
通过SVN或是Git下载好所需要扫描的项目;
在项目的根目录,有pom.xml的根目录下创建一个 sonar-project.properties文件
加入以下代码:
代码解析:
# Required metadata
sonar.projectKey=这里填写项目的名称 比如,你down下来的项目叫test就填test
sonar.projectName= 填写和Key一样的名称即可
sonar.projectVersion=3.3 项目版本可以任意填写
# Comma-separated paths to directories with sources (required)
sonar.sources=填写项目Down下来的位置 比如: D:/test
#sonar.binaries=
# Language
sonar.language=java
# Encoding of the source files
sonar.sourceEncoding=UTF-8
sonar.java.binaries=填写项目Down下来的位置 比如: D:/test
填写完成后,保存;
3.2 执行项目扫描
打开cmd,进入项目的根目录,比如D:/test
再输入sonar-scanner 即可;
扫描成功后:
四.查看扫描报告
重新登录 http://localhost:9000 即可查看到项目扫描的报告:
点击问题可查看更详细的报告: