SonarQube是市场上很受欢迎的代码质量和安全性分析工具。
它在开源社区的支持下,目前可以分析超过25种编程语言的程序。
它具有免费的社区版本和其他付费版本。
搭建步骤
- 安装JDK
- 安装SonarQube
- 安装MySQL
- 连接SonarQube与MySQL
- 安装Sonar-Scanner
- SonarQube添加离线插件
- 运行Scanner
安装JDK
Java JDK在linux系统有两个版本,一个是开源版本Openjdk,还有一个是oracle官方版本jdk。
更新软件包列表
sudo apt-get update
安装openJDK-8
sudo apt-get install openjdk-8-jdk
检查java是否安装成功
java -version
安装SonarQube
下载SonarQube安装包
地址:https://www.sonarqube.org/downloads/
解压安装包
安装包放合适位置,并解压。
unzip sonarqube-7.6.zip
启动Sonar
进入目录:sonaqube-7.6/bin/{os},os为系统类型。
可通过命令行查看系统类型。
启动Sonar
./sonar.sh start
如果在启动过程中出现如下错误:
Starting SonarQube… Failed to start SonarQube.
请在 sonarqube-5.6.6/bin/{os} 目录下新建文件 SonarQube.pid ,然后重新启动。
检查启动结果
启动浏览器,访问:http://localhost:9000,出现SonarQube界面则表示安装成功。
安装中文插件
中文插件下载地址
https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.16
将下载的插件放到 sonarqube-7.6/extensions/plugins/ 下
进入SonarQube的bin目录,重启SonarQube
./sonar.sh restart
安装MySQL
查看SonarQube支持的MySQL版本
查看文件:sonarqube-7.6/conf/sonar.properties,获取支持的MySQL版本。
一般的MySQL支持范围:MySQL >=5.6 && <8.0
CentOS安装数据库MySQL-5.7
详细参考文章:https://jz.wohunlfry.top/2020/11/12/CentOS7%E9%80%9A%E8%BF%87yum%E5%AE%89%E8%A3%85MySQL/
连接SonarQube与MySQL
创建数据库sonarqube
CREATE DATABASE sonarqube;
修改sonar.properties配置信息
打开文件:sonarqube-7.6/conf/sonar.properties,取消配置注释并修改
1 | # 连接数据库的用户名 |
重启sonar,再次访问
./sonar.sh restart
安装Sonar-Scanner
安装包下载
地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
配置Sonar-Scanner
将Sonar-Scanner安装包放合适位置
编辑文件:sonar-scanner-cli-4.6.0.2311-linux/conf/sonar-scanner.properties
1 | #----- Default SonarQube server |
在sonarqube网站创建项目
输入项目key和项目名创建项目,并保存生成的token。
在程序目录添加sonar-project.properties
sonar-project.properties文件放在需要审查的代码的同一目录
如项目目录:RT_Linux/quality
则sonar-project.properties放在RT_Linux/quality目录下
sonar-project.properties内容:
1 | # 项目的key |
SonarQube添加离线插件
SonarQube的Community版本是不支持对C语言代码进行质量分析的,Developer及以上付费版本才支持。但有一些开源的社区插件支持,比较著名的一个是sonar-cxx。
插件下载
插件安装
将下载的插件放到 sonarqube-7.6/extensions/plugins/ 下
进入SonarQube的bin目录,重启SonarQube
./sonar.sh restart
设置C语言质量配置
因Sonar way为内建不可更改的质量规则,即使安装了C和C++的插件,关于C和C++的代码规则都还是0,需要新建C和C++的质量规则。
另外,从右侧的侧栏可以看到安装完C和C++的插件后,新增了13K的未激活的规则。
在“质量管理”界面看到新增的关于C和C++的质量配置
新建C语言配置
“质量配置”页面,看到新建的C语言配置和已有的Sonar way配置,默认配置为Sonar way, 两个配置的规则数都为0。
先将新建的C-Profile设置为默认配置
设置完成后,在“质量配置”页面可看到C语言的配置规则为C-Profile
为C-Profile填加规则
在弹出的”代码规则”页面,使用”批量修改”命令里面的”活动…”。
在弹出的对话框里选择新创建的C-Profile,点击“应用”。
完成后,在“质量配置”页面,可看到C-Profile的规则数的变化
到此C语言的质量配置已完成,可创建项目对C语言工程进行质量检查。
设置C++语言质量配置
流程同C语言,细节变通即可。
运行Scanner
终端进入程序目录:RT_Linux/quality
运行Scanner
/sonar-scanner-cli-4.6.0.2311-linux/bin/sonar-scanner
命令为sonar-scanner的文件位置