SonarQube代码检查
SonarQube 简介
Sonarqube
为静态代码检查工具,采用B/S
架构,帮助检查代码缺陷,可以快速的定位代码中潜在的或者明显的错误,改善代码质量,提高开发速度。通过插件形式,可以支持Java、C、C++、JavaScripe等二十几种编程语言的代码质量管理与检测。
通过客户端插件分析源代码,sonar客户端可以采用IDE
插件、Sonar-Scanner
插件、Ant
插件和Maven
插件方式,并通过各种不同的分析机制对项目源代码进行分析和扫描,并把分析扫描后的结果上传到sonar的数据库,通过sonar web界面对分析结果进行管理。
在公司中,一般是把Sonarqube布置在服务器端,当开发人员提交代码时,Jenkins触发Sonarqube进行代码检查。但是对于开发人员来说,可以在IDEA中可以安装Sonarqube插件,并且在本地或者局域网服务器上安装Sonarqube服务器。这样就可以通过插件连接在本地使用Sonarqube进行代码检查。
Sonarqube可以从七个维度检测代码质量:
(1) 复杂度分布(complexity):代码复杂度过高将难以理解
(2) 重复代码(duplications):程序中包含大量复制、粘贴的代码而导致代码臃肿,sonar可以展示源码中重复严重的地方
(3) 单元测试统计(unit tests):统计并展示单元测试覆盖率,开发或测试可以清楚测试代码的覆盖情况
(4) 代码规则检查(coding rules):通过Findbugs,PMD,CheckStyle等检查代码是否符合规范
(5) 注释率(comments):若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读
(6) 潜在的Bug(potential bugs):通过Findbugs,PMD,CheckStyle等检测潜在的bug
(7) 结构与设计(architecture & design):找出循环,展示包与包、类与类之间的依赖、检查程序之间耦合度
安装SonarQube
- 搭建分两大步:服务端跟客户端,本地开发只需安装
SonarLint
插件即可。
服务端
- 前提条件:准备好
Java
环境和MySql
数据库
一、Windows系统安装
1、下载 Sonarqube
,然后解压:http://www.sonarqube.org/downloads/
2、在mysql中新建一个sonar
数据库
3、修改~/conf/sonar.properties
配置文件,在Mysql节点下添加数据库信息:
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=xxxx
sonar.sorceEncoding=UTF-8
# 登录Sonarqube的用户名和密码
sonar.login=admin
sonar.password=admin
4、启动Sonarqube服务
进入~/bin/OS
目录,OS对应自己的操作系统,比如我选择 ~/bin/windows-x86-64/StartSonar.bat
,运行该程序启动服务,在启动过程中会初始化数据库信息。
浏览器输入localhost:9000
访问Sonarqube。
5、配置中文
① 登录,输入admin/admin
② 按照如下步骤安装中文包
③ 重启服务,之后就是中文界面啦
④ 更新Git
和Java
分析器
⑤ 新建一个项目
6、代码规则里可以配置检查规则
二、Linux系统安装
建议采用Docker Compose方式进行处理,这里不做具体阐述。提供一个Docker Compose文件, docker-compose.yml 可自行安装调试。
操作使用可参考上面Windows安装章节内容
- Sonarqube内网地址:http://172.20.0.201:9000
IDEA中开启本地SonarQube规范检查
-
按照如下步骤安装
SonarLint
插件,安装完成之后重启IDEA
-
配置关联sonar服务端
全局设置
-
Settings -> Other Settings -> SonarLint General Settings
-
添加sonar服务http://172.20.0.201:9000
项目设置
-
Settings -> Other Settings -> SonarLint Project Settings
-
选择刚才配置的sonar服务,关联到本项目。
-
关联sonar服务之后就会共享服务器上的代码规则。在idea下面一栏找到sonarLint,可以分析单个文件,也可单独分析未提交的代码。
-
项目右键使用SonarLint分析
-
在
Report
里可以看到分析报告,右边可以看到应用的规则,以及给出的解决方式
-
对应的审查类型及严重程度
Eclipse中开启本地SonarQube规范检查
-
按照如下步骤安装
SonarLint
插件,安装完成之后重启IDEA
-
配置关联sonar服务端
-
Window -> Show View -> Other
-
创建于SonarQube服务器链接
-
设置服务器地址
-
选择认证模式,可以使用用户名密码认证或这Token认证,Token需要在服务器用户信息界面中获取,这里使用Token进行认证
-
输入Toeken信息
-
自定义连接名称
-
完成连接设置
- 绑定sonar平台项目
- 在Eclipse本地项目目录右键 SonarLint -> Bind to a SonarQube Projects
- 代码扫描
- 在要检查的文件上面右键,选择 SonarLint -> Analyze进行扫描