一.SonarQube简介
SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。 通过插件形式,可以支持众多计算机语言,比如 java, C#, go,python, JavaScrip, Groovy 等。sonar可以通过PMD,CheckStyle,Findbugs,pylint等等代码规则检测工具来检测你的代码,帮助你发现代码的漏洞,Bug,异味等信息。
Sonar 不仅提供了对 IDE
的支持,可以在 Eclipse
和 IntelliJ IDEA
这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。
二.安装SonarQube
1. 环境准备:
(1)jdk
(2)sonarqube下载:https://www.sonarqube.org/downloads/
(3)sonar-scanner下载:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
(4)MySql数据库
(5)操作系统:本次以windows环境为例
(6)这里需要特别注意:本案例主要以2019年以前的sonarqube的版本来讲解,2019年以后发布的版本将不在支持mysql数据库,所以如果下载的是2019年以后发布的版本需要,将mysql数据库更换成postgresql数据库
2. 具体安装与配置过程
(1)分别下载sonarqube和sonar-scanner安装包到本地之后进行解压
(2)安装数据库,并创建sonarqube需要的数据库
mysql: 启动MySQL数据库,创建sonar数据库(这个数据库可以自行命名)即可。
postgrsql: 安装postgresql数据库,具体安装教程参考https://www.runoob.com/postgresql/windows-install-postgresql.html,启动pgadmin4,进入数据库,创建sonar数据库(可自行命名)。
*注意:两个数据库根据对应的sonarqube的版本来安装对应数据库
(2)安装java,并配置环境变量
这里不再讲述,具体的java的安装配置过程。
(3)进入sonarqube解压缩之后的文件目录中,进入conf文件下,找到sonar.properties文件,并向其中添加MySQL数据库的连接配置信息如下:
# 需要修改ip地址,可对应的数据库名
# mysql数据库用户名
# mysql数据库密码
# 编码格式
# sonarqube的web端登录用户名
# sonarqube的web端登录密码
|
如果为postgre数据库
# 需要修改ip地址,可对应的数据库名
sonar.jdbc.url=jdbc:postgresql://192.168.218.127:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
# postgresql数据库用户名
sonar.jdbc.username=root
#postgresql数据库密码
sonar.jdbc.password=123456
# 编码格式
sonar.sorceEncoding=UTF-8
# sonarqube的web端登录用户名
sonar.login=admin
# sonarqube的web端登录密码
sonar.password=admin
(4)进入sonar-scanner解压缩之后的文件目录中,进入conf文件下,找到sonar-scanner.properties文件,并向其中添加MySQL数据库的连接配置信息如下:
|
如果为postgre数据库
sonar.jdbc.url=jdbc:postgresql://192.168.217.128:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=123456
(5)至此,Sonar的基本配置就已经完成了,启动它
进入sonarqube解压缩之后的文件目录中,进入bin目录下,找到相对应操作系统的启动环境(StartSonar.bat)进行启动服务。
具体分为三个步骤:
第一:安装服务:以管理员身份运行InstallNTService
第二:启动服务:以管理员身份运行StartNTService
第三:启动sonarqube:以管理员身份运行StartSonar
如果运行成功,具体如下:
(7)进入mysql数据库中,你会看到生成了大量的数据表,如下:
如果是postgresql也是如此
(8)在浏览器上打开web地址:
http://192.168.217.128:9000/projects
三.使用SonarQube
1. 配置sonar-scanner的环境变量
(1)windows环境下进入高级系统设置环境变量下进行配置,
新建环境变量:
变量名:SONAR_RUNNER_HOME
变量值:F:\sonar-scanner-4.3.0.2102-windows (此处是你所下载的sonar-scanner解压之后所在的文件)
(2)编辑Path环境变量,输入内容: %SONAR_RUNNER_HOME%\bin ,之后保存退出
(3)以管理的身份启动cmd命令窗口,查看sonar-scanner的版本信息:sonar-scanner -v,如下:
说明环境变量配置成功
2. 新建配置文件sonar-project.properties
打开要进行代码分析的项目根目录,新建sonar-project.properties文件
文件内容输入如下信息:
#projectKey是项目的唯一标识,不能出现重复,可随意起
sonar.projectKey=xxx
# this is the name displayed in the SonarQube UI,不能是中文
sonar.projectName=yyyy
# 项目的版本号
sonar.projectVersion=1.0
# 项目的代码的编码格式
sonar.sourceEndcoding=UTF-8
# 项目的语言
sonar.language=python
# 项目的源代码目录
sonar.sources=.
# 项目的编译生成的class文件的所在目录
#sonar.java.binaries=target/test-classes
4. 之后访问http://localhost:9000/, 并进行登录admin/admin,即可查看代码审查结果信息,如下
可根据具体的bug,自行修改。