基于SonarQube代码质量检查工具总结

1 概述
SonarQube(sonar)是一个开源平台,使用于管理源代码的质量。 SonarQube不只是一个质量数据报告工具,更是代码质量管理平台。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。 SonarQube可以从以下七个维度检测代码质量,而作为开发人员至少需要解决前5种代码质量问题。
- (1) 不遵循代码标准
SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。 - (2) 潜在的缺陷
SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。 - (3) 糟糕的复杂度分布
文件、类、方法等,假如复杂渡过高将难以改变,这会使得开发人员 难以了解它们, 且假如没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。 - (4) 重复
显然程序中包含大量复制粘贴的代码是质量低下的,SonarQube可以展现 源码中重复严重的地方。 - (5) 注释不足或者者过多
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违反初衷。 - (6) 缺乏单元测试
SonarQube可以很方便地统计并展现单元测试覆盖率。 - (7) 糟糕的设计
通过SonarQube可以找出循环,展现包与包、类与类之间的相互依赖关系,可以检测自己设置的架构规则 通过SonarQube可以管理第三方的jar包,可以利使用LCOM4检测单个任务规则的应使用情况, 检测耦合。
通过以下详情如何基于Jenkins和SonarQube完成代码质量持续检测。
2 环境准备
清单如下,安装方法自行百度谷歌
- Java环境
- Maven环境
- SonarQube平台
- Jenkins平台
- 数据库(例如MySQL)
3 环境配置
3.1 Maven
为了基于Maven方式用Jenkins,需要再Maven安装目录下的conf/setting.xml文件配置关于sonar的配置
- sonar.login
SonarQube平台登录的账号的使用户名 - sonar.password
SonarQube平台登录的账号的密码 - sonar.host.url
SonarQube平台的地址 - sonar.inclusions
代码分析包括哪些文件需要分析,英文逗号分隔
新添加配置
4 用说明
4.1 Jenkins
创立一个新任务:
步骤1 创立
选择构建一个自由风格的软件项目
步骤2 配置源码管理
这里是用了Git来做源码管理,gitlab作为源码库
项目分支填写master
步骤3 配置构建触发器
这里配置H 18 * * *,代表每日18点前定时构建
步骤4 配置构建
第一行用jacoco插件,进行代码覆盖率测试
第二行用sonar插件,进行代码检测并提交检测结果
clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true -P devsonar:sonar
步骤5 配置构建后步骤,发邮件
需要在Jenkins提前配置好邮箱
4.2 SonarQube
SonarQube基本架构图
SonarQube基本架构图
SonarQube与项目持续集成架构图
SonarQube与项目持续集成架构图
4.2.1 SonarQube说明
4.2.2 开发者本地基于Maven用SonarQube
Jenkins的每日构建默认是用master,在开发过程中,有时需要在开发者的开发中的分支进行代码检测
方法:
步骤1 配置Maven
按照 3.1 Maven的配置说明,配置本地的Maven环境步骤2 触发检测
在项目顶层目录,执行命令:mvn sonar:sonar就可
4.2.3 相关指标说明

指标
4.2.4 代码质量阈

代码整体质量的统计,可以帮助使用户了解项目能否已经可以投入生产
默认配置(可以根据项目实际情况重新配置):
默认质量阈配置
参考
SonarQube代码质量检查工具
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 基于SonarQube代码质量检查工具总结