原文链接:SonarQube介绍_zzhongcy的博客-CSDN博客_sonarqube
SonarQube基本介绍_Nightmare_Zero的博客-CSDN博客_sonarqube
SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。
1 Sonar简介
1.1 sonarQube是什么?
1、代码质量和安全扫描和分析平台。
2、多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、测试覆盖率等。
3、支持25+编程语言的代码扫描和分析,包含java\python\C#\javascript\go\C++等。
4、涵盖了编程语言的静态扫描规则: 代码编写规范+安全规范。
5、能够与代码编辑器、CI/CD平台完美集成。
6、能够与SCM集成,可以直接在平台上看到代码问题是由哪位开发人员提交。
7、帮助程序猿写出更干净、更安全的代码。
静态扫描主要针对开发人员编写的源代码。
通过定义好的 代码质量和安全规则,对开发人员编写的代码进行扫描和分析。
将分析的结果多维护的呈现出来,以方便开发人员进行代码的优化和规范编写。
1.2 sonarQube如何工作?
sonar静态代码扫描由2部分组成:sonarQube平台,sonar-scanner扫描器。
sonarQube: web界面管理平台。
1)展示所有的项目代码的质量数据。
2)配置质量规则、管理项目、配置通知、配置SCM等。
sonarScanner: 代码扫描工具。
专门用来扫描和分析项目代码。支持20+语言。
代码扫描和分析完成之后,会将扫描结果存储到数据库当中,在sonarQube平台可以看到扫描数据。
sonarQube和sonarScanner之间的关系:
2 检测
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量
通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测
3 SonarQube的各个功能:
代码可靠性
这一块功能主要是静态代码检测的基本功能,其他的代码检测软件也基本拥有同样的功能。
BUG检测
设置需要的代码标准
代码异味
代码安全性
对于开发的各个路径进行检测
软件安全性
这一块的功能主要是介绍SonarQube对于软件安全性的测试,帮助开发人员完成更加安全的软件程序。
Security Hotspots: 代码存在安全问题的部分
Vulnerabilities: 代码是否存在漏洞
代码技术负债的检测
这一块功能主要体现SonarQube的核心理念, SonarQube核型理念如下:
Clean as You Code(编码即清洁)
在开发者完成一部分新的代码之后,可以将代码推给SonarQube,SonarQube会一直关注新开发的代码,并对这一部分的代码的品质进行分析和评价,以保证开发者的代码一直保持满足标准的状态.
Focus on New Code
针对新代码的品质检测,可以按照开发者或者团队的需要,调整为不同的标准,以适应不同的开发级别.在现阶段,有global(全局)级别,project(项目)级别,branch(分支)级别.在根据不同的级别,设置不同的标准,能够使开发更加的灵活,更好的保证代码品质.
Quality Gate
如同这个名字所表达的意思,这个就是SonarQube对于代码进行评价的标准.对于SonarQube会在每一个版本的SonarQube里面绑定一个一个叫做“Sonar way”的标准.这个是运营SonarQube的公司认定的业界里面的代码品质标准,可以满足大部分软件开发的代码品质检测.但是,如果开发团队希望自己规定品质标准的话,也可以自己进行品质标准的设置.所有的代码品质设置也很简单,在SonarQube的代码品质设置界面里面,根据不同情形将以下三项进行设置即可:
measure
comparison operator
error value
如果没有特别的需要, SonarQube官方推荐使用“Sonar way”.