SonarQube® 是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码异味。 它可以与您现有的工作流程集成,以支持跨项目分支和拉取请求的持续代码检查。简单来说sonar是一款功能强大的代码质量管理工具,具备多个维度的统计功能。同时提供了丰富的扩展能力,允许用户通过checkStyle甚至是自定义插件的方式扩展代码的检测规则。
首页说明
首先访问:https://sonar.seeyoncloud.com/ 进入sonarQube首页

图中红色方框部分为各个项目模块的质量状态。主要观察维度是:
Bugs:
最严重的质量级别,触犯类型为Bugs的规则sonar检测直接不通过。绿色字母A代表了可靠性评级为A。官网解释如下:
Reliability Rating (reliability_rating)
A = 0 Bugs
B = at least 1 Minor Bug
C = at least 1 Major Bug
D = at least 1 Critical Bug
E = at least 1 Blocker Bug漏洞:
漏洞排名第二的质量级别,触犯类型为漏洞的规则也将导致检测不通过。绿色字母A代表了安全性评级为A。官网解释如下:
A = 0 Vulnerabilities
B = at least 1 Minor Vulnerability
C = at least 1 Major Vulnerability
D = at least 1 Critical Vulnerability
E = at least 1 Blocker Vulnerability异味:
排名第三质量级别,触犯类型为严重以上的异味规则也将导致检测不通过。(颜色为红色为必须处理的规则,务必修改之)。绿色字母A代表技术债务率评级为A.官网解释如下:
Ratio between the cost to develop the software and the cost to fix it. The Technical Debt Ratio formula is:
Remediation cost / Development cost
Which can be restated as:
Remediation cost / (Cost to develop 1 line of code * Number of lines of code)
The value of the cost to develop a line of code is 0.06 days.剩下的两项分别是单元测试代码覆盖率,重复代码统计,不做强制要求。
项目旁边的绿色字体正常为质量阈值规则检测的结果。他的作用是允许用户定义什么质量的统计结果视为检测通过。如Bugs和漏洞必须为0,安全性评级、可靠性评级为A
总结来说:我们需要关注的sonar规则类型按照严重程度排名主要是:Bugs、漏洞、异味。每种类型的又有5个等级,叫做严重性:阻断、严重、主要、次要、提示。其中红色的严重性:阻断、严重、主要必须要修改处理,否则sonar检测无法通过。
导航菜单解释
问题
问题是sonar通过安排的规则扫描出的触犯代码规则的问题代码。左边是规则的分类,按照类型、验证程度等维度进行了分类。右边为具体的问题代码段,点击进行可以查看整个代码文件以及对应的规则详情

代码规则
代码规则里面罗列了各种规则,涵盖不同的类型的文件以及具体的规则说明、严重性等信息。点击具体规则可以查看具体的规则说明

质量配置
质量规则的内容并不是所有的都会在检测时候去执行扫描,用户可以在质量配置中,定义一个配置,把需要检测的代码规则添加进去,灵活使用。我们默认的质量是使用的seeyon

点击seeyon可以查看质量涵盖的规则。了解seeyon质量配置下的java文件代码规则
质量阈
质量阈就是决定项目能否通过扫描的开关。如新增代码触犯了Bugs则ci/cd会提示sonar检测失败,失败的具体原因就是质量阈的某项指标不达标
