静态代码扫描工具 - SonarQube 介绍

本贴最后更新于 1563 天前,其中的信息可能已经水流花落

SonarQube介绍



1、为什么要用sonarQube?


在我们的日常软件开发工作当中,随着项目时间变长,开发人员编写的代码量也会越来越多。

长此以往,会面临代码量庞大,却无法横量整体代码质量?若是要优化,也不知道如何优化。

image.png


针对这些问题,出现了各种各样的工具,比如:

java语言的Checkstyle,FindBugs,PMD,Jtest等,帮助检测代码编写规范上存在的问题和漏洞

python语言的Pyflakes,Pylint,pep8等。

C#语言的FxCop、StyleCop等。

通过这些工具扫描的结果分析后,根据结果来优化代码问题,以提高代码质量。


以上这些工具都是 代码的静态扫描分析 工具。

所谓静态代码分析,就是针对开发人员编写的源代码,在不运行的情况下,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷。


在单独使用以上这些工具时,我们会面临:

  1. 需要一个平台,能够汇总呈现不同语言的项目、不同工具的扫描结果
  2. 需要一个平台,可以友好的呈现或者追溯,一段时间内每一次扫描的结果的差异。

sonarQube就是这样的一个平台,

1)支持多种语言的静态代码扫描。

2)多维护呈现项目代码的质量状态。



2、sonarQube是什么?


  1. 代码质量和安全扫描和分析平台。
  2. 多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、测试覆盖率等。
  3. 支持25+编程语言的代码扫描和分析,包含java\python\C#\javascript\go\C++等。
  4. 涵盖了编程语言的静态扫描规则: 代码编写规范+安全规范。
  5. 能够与代码编辑器、CI/CD平台完美集成。
  6. 能够与SCM集成,可以直接在平台上看到代码问题是由哪位开发人员提交。
  7. 帮助程序猿写出更干净、更安全的代码。

静态扫描主要针对开发人员编写的源代码。

通过定义好的 代码质量和安全规则,对开发人员编写的代码进行扫描和分析。

将分析的结果多维护的呈现出来,以方便开发人员进行代码的优化和规范编写。



3、sonarQube如何工作?

sonar静态代码扫描由2部分组成:sonarQube平台,sonar-scanner扫描器。

sonarQube: web界面管理平台。

1)展示所有的项目代码的质量数据。
2)配置质量规则、管理项目、配置通知、配置SCM等。

sonarScanner: 代码扫描工具。

专门用来扫描和分析项目代码。支持20+语言。
代码扫描和分析完成之后,会将扫描结果存储到数据库当中,在sonarQube平台可以看到扫描数据。

sonarQube和sonarScanner之间的关系:

image.png


扫描数据流向:

image.png



4、sonarQube环境安装

参考博文:
https://www.cnblogs.com/Simple-Small/category/1763936.html

1 操作
xiaojian 在 2020-08-07 10:07:25 更新了该帖
回帖
请输入回帖内容 ...