声明:内容转自https://blog.csdn.net/liuhaiguang2012/article/details/79394971
一、SonarQube整体介绍
SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速度,通过插件形式,可以支持Java、C、C++、JavaScripe等等二十几种编程语言的代码质量管理与检测。
通过客户端插件分析源代码,sonar客户端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式,并通过各种不同的分析机制对项目源代码进行分析和扫描,并把分析扫描后的结果上传到sonar的数据库,通过sonar web界面对分析结果进行管理
可以从七个维度检测代码质量:
(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平台由四部分组成:
1、 SonarQubeServer
1) Web Server, 浏览质量的快照和配置sonarqube实例
2)SearchServer based on Elasticsearch, 执行来自页面的查询请求
3)Compute EngineServer ,处理代码分析报告并保存在sonarqube数据库
2、SonarQube Database :
1) sonarqube实例的配置(安全、插件设置等)
2) 项目、视图等的质量快照。
3、SonarQube Plugins
语言、SCM、集成、身份验证和治理插件
一个或多个sonarqube Scanners运行分析项目