Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。
Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。
支持Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。
Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。
不遵循代码标准
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
潜在的缺陷
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
重复
显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。
注释不足或者过多
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
缺乏单元测试
sonar可以很方便地统计并展示单元测试覆盖率。
糟糕的设计
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测藕合。
SonarQube 版本很多,对JDK版本要求也不同,这里以7.3 Community版本为例。
基于CentOS系统安装环境信息
工具/环境 版本CentOS 7.4
SonarQube 7.3
MySql 5.7
JDK 1.8
官网下载对应操作系统的安装包,官网下载链接:https://www.sonarqube.org/downloads/
安装
注意事项:
SonarQube安装使用依赖JDK,需提前安装配置好JDK相关信息
SonarQube安装使用依赖数据库和ElasticSearch,故需要提前准备好数据库和ElasticSearch相关资源
注意:SonarQube 7.3 版本要求MySQL版本不能低于5.6且提前创建好名为sonar的数据库
启动SonarQube和ElasticSearch不可使用root账户,故需要提前创建好新的用户组和用户,被赋予SonarQube文件夹可操作权限
第一步: 上传并解压安装包至任意工作目录,这里以/home为例
第二步:新建用户组sonar和用户sonar并分配sonar目录可操作性权限
第三步: 切换至sonar用户启动SonarQube
启动过程中可进入logs目录查看相关服务启动日志,启动成功之后浏览器访问::9000 即可
第四步: 安装必要插件
因官网下载安装的系统界面语言为英文,且不可导出pdf报告,简单介绍如下安装插件
中文插件包下载链接
导出pdf插件包下载链接
上传插件包到sonarqube安装目录下的extensions/plugins/目录下,然后重启系统即可。
第五步: 登录系统
登录Web系统,确实账号密码为admin/admin
使用 结合Maven如何利用Sonar分析代码在工程根目录执行如下命令分析代码质量
mvn sonar:sonar -Dsonar.host.url=http://180.8.2.99:9000 -Dsonar.login=c3e9b746e26f0fef387a0e8eb4ccfc0d6c6a94b0注意:最后面的login参数可在Web系统页面获取
进入创建token页面