一、SonarQube 能解决什么问题
SonarQube 是一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题,代码质量的评分,健康状况等。而且提供了丰富的插件,支持多种语言的检测, 如 Java、Javascript、Python、C#、等编程语言的检测。
二、配置安装流程
使用 SonarQube 需要jdk支持,还需要数据库来存放检测代码的数据报告,检测的时候还需要使用 sonar-runner来使用。
以下需要用到的软件:
(1) 安装 JDK
JDK 不详细写了,以下是百度的教程,怎么去安装和配置环境变量: jingyan.baidu.com/article/6da…
(2) 安装 SonarQube
- 下载完直接解压 SonarQube 就好,进入sonar/bin目录下,进入对应的系统目录,启动 sonar,再用浏览器打开,输入URL:localhost:9000,如果可以看到后台界面说明安装成功。
(3) 配置数据库和修改 Sonar 配置
(1) 安装完 sonar 还需要创建 sonar 的用户和数据库,使用 MySQL Command Line Client输入以下命令创建(或者使用 Navicat Premium 客户端来建立一个 Sonar 数据库)
打开数据库命令行客户端,输入命令:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; // 创建sonar数据库
CREATE USER 'sonar' IDENTIFIED BY 'sonar'; // 创建sonar用户
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; // 给sonar用户分配可对所有数据库的所有表进行所有操作的权限,并设定口令为sonar
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; // 给本机用户sonar分配可对所有数据库的所有表进行所有操作的权限,并设定口令为sonar
FLUSH PRIVILEGES; // 刷新权限
查看是否成功创建了一个名为sonar的数据库:
show databases;
(2) 修改 Sonar 配置,找到安装包下conf/sonar.properties文件,去掉sonar.jdbc.username、sonar.jdbc.password、sonar.jdbc.url前面的注释符号,再填写具体的username、password和url:
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
三、直接在开发项目中使用
Sonar 的命令行分析端软件有两种分别是 Sonar-Runner 和 Sonar-Scanner,这里我们用 Sonar-Runner 来验证。
- (1) 安装 Sonar-Runner
- (2) 配置 Sonar-Runner,找到安装包下 conf/sonar-runner.properties文件,配置如下:
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:postgresql:
- (3) 在检测项目根目录新建sonar-project.properties,配置如下:
sonar.sources=.
sonar.sourceEncoding=UTF-8
sonar.projectVersion=1.0
sonar.projectName=test // 填写自己的项目名称
sonar.projectKey=test // 填写自己的项目的唯一标识
在项目根目录中执行命令:
$ sonar-runner
检测完成,再次打开 localhost:9000,就可以看到项目的检测报告。
四、在 Jenkins 构建中使用
我们的项目测试都需要经过 jenkins 构建发布,在jenkins构建这里加上 SonarQube 来监控代码是比较合理的。
- (1) 安装 jenkins 插件 SonarQube Scanner For Jenkins
- (2) 配置 sonar 服务,Manage Jenkins > Configure System > SonarQube servers,并添加sonar token
- (3) 设置 sonar 安装路径,Manage Jenkins > Global Tool Configuration
- (4) 在构建的任务设置里面,Configuration > Build 添加 sonar-project.properties 参数
// 配置参数
sonar.sources=.
sonar.sourceEncoding=UTF-8
sonar.projectVersion=1.0
sonar.projectName=${name}
sonar.projectKey=${name}
- (5) 构建任务完成后即可打开 SonarQube 后台地址查看分析报告。