JavaSonarQubeJenkins

基于 SonarQube7.4 实现代码规范自动化检测解决方案

2020-11-03  本文已影响0人  夹胡碰

解决方案说明

代码规范检测,是对代码的可靠性、安全性、可维护性、代码重复率、代码量大小进行检测和评判,生成质量报告,反馈给开发人员进行代码优化。

该解决方案使用SonarQube作为核心检测工具,通过1开发人员push/merge代码=》2执行SonarQube代码规范检测=》3企业微信通知=》4反馈开发人员代码检测结果,形成闭环。

整个解决方案刚刚实施,使用软校验的形式进行代码检测,对不规范的代码不强制限制提交,起督促监督作用。后期可针对重点项合理划分检测阈值,逐步提升至硬校验。

检测流程

后端开发人员push/merge代码到dev分支时,触发gitlab-ci,启动gitlab-runner执行gitlab-ci.yml脚本,执行sonar-scanner代码规范扫描命令,扫描结果推送至SonarQube(可在Web-UI界面查看检测结果详情),检测结束之后触发SonarQube-WebHooks发送统计结果到PushMessageServer服务,解析转换Json结果集并调用企业微信机器人通知Rest Api,对检测结果进行消息推送至企业微信。开发人员可以通过消息链接看到SonarQube-Web-UI的详细检测结果。

image.png

检测功能

1. 检测项说明

合计388条规则

image.png
2. 检测阈值配置

阈值可配置,暂时针对代码可靠性(A)-bugs,代码安全性(A)-漏洞,代码可维护性(异样),代码重复率(10%)。进行代码检测是否通过的评判项。

3. 支持多分支

暂时只针对dev分支进行检测

4. 提醒说明

不强制拒绝提交代码,软校验功能,检测不通过@人进行修改,通过只提示检测通过。但是,提交通过也不表示没有bug,有可能是严重程度没有达到阈值,需要长期关注。

5. 后期优化

针对检测项,及评判阈值,进行合理的修改。

检测通知样例

image.png image.png

SonarQube检测面板样例

http://192.168.102.27:9000

image.png

检测服务样例

image.png

监测项样例

1. 代码可靠性 - bugs
image.png
image.png
2. 代码安全性 - 漏洞
image.png
image.png
3. 代码可维护性 - 异样/异味
image.png
image.png
image.png
4. 代码重复率
image.png
5. 代码量大小
image.png
image.png

相关参考

SonarQube工具核心参考
  1. Windows环境从零搭建SonarQube 7.4(稳定版)
  2. Idea代码检查插件 - SonarLint 安装使用
安装部署参考
  1. Linux Ceonto7安装Docker-CE并使用
  2. Docker安装Mysql 5.7并使用
  3. Docker安装gitlab服务器
  4. Gitlab Runner安装注册
  5. sonarQube + gitlab-runner 实现代码规范自动化检测
  6. 企业微信群创建 - 群机器人 - 实现通知推送
阿里代码检测工具(Alibaba Java Coding Guidelines)使用参考
  1. Alibaba Java Coding Guidelines 代码检查插件Idea使用
  2. Alibaba Java Coding Guidelines 检测级别 - Blocker级别
  3. Alibaba Java Coding Guidelines 检测级别 - Critical级别
  4. Alibaba Java Coding Guidelines 检测级别 - Major级别
上一篇 下一篇

猜你喜欢

热点阅读