SonarQube简介

SonarQube简介

1. sonar简介

sonar是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,而且能够集成在IDE、Jenkins、Git等服务中,方便随时查看代码质量分析报告;
在这里插入图片描述
sonar通过配置的代码分析规则,从可靠性、安全性、可维护性、覆盖率、重复率等方面分析项目,风险等级从A~E划分为5个等级;

同时,sonar可以集成pmd、findbugs、checkstyle等插件来扩展使用其他规则来检验代码质量;
在这里插入图片描述
sonar设置了质量门,通过设置的质量门评定此次提交分析的项目代码是否达到了规定的要求;
在这里插入图片描述
Sonar可以从以下七个维度检测代码质量。

  1. 不遵循代码标准

sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。

  1. 潜在的缺陷

sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的缺陷。

  1. 糟糕的复杂度分布

文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。

  1. 重复

显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。

  1. 注释不足或者过多

没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。

  1. 缺乏单元测试

sonar可以很方便地统计并展示单元测试覆盖率。

  1. 糟糕的设计

通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包

需要用到的软件有:SonarQube,Sonar-scanner.

SonarQube为代码检查的server,并提供可视化界面;

Sonar-scanner为client。用于收集检查数据并且发送到server中。也就是传统的C/S关系:
在这里插入图片描述

二、sonar的组成

一个sonar项目主要有以下四个组件构成:
在这里插入图片描述

  1. 一台SonarQube Server启动3个主要过程:
  • Web服务器,供开发人员,管理人员浏览高质量的快照并配置SonarQube实例
  • 基于Elasticsearch的Search Server从UI进行后退搜索
  • Compute Engine服务器,负责处理代码分析报告并将其保存在SonarQube数据库中
  1. 一个SonarQube数据库要存储:
  • SonarQube实例的配置(安全性,插件设置等)
  • 项目,视图等的质量快照。
  1. 服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和管理插件
  2. 在构建/持续集成服务器上运行一个或多个SonarScanner,以分析项目;

三、工作流转

以下架构图为sonar项目的工作流转图
在这里插入图片描述

  1. 开发人员在其IDE中进行编码,并使用SonarLint运行本地分析。
  2. 开发人员将其代码推送到他们最喜欢的SCM中:git,SVN,TFVC等。
  3. Continuous Integration Server会触发自动构建,并执行运行SonarQube分析所需的SonarScanner。
  4. 分析报告将发送到SonarQube服务器进行处理。
  5. SonarQube Server处理分析报告结果并将其存储在SonarQube数据库中,并在UI中显示结果。
  6. 开发人员通过SonarQube UI审查,评论,挑战他们的问题,以管理和减少技术债务。
  7. 经理从分析中接收报告。Ops使用API​​自动执行配置并从SonarQube提取数据。运维人员使用JMX监视SonarQube Server。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值