概要
- 一个SonarQube服务器启动3个主要流程:
-
Web服务器,供开发人员,管理人员浏览高质量快照并配置SonarQube实例
-
基于Elasticsearch的Search Server从UI返回搜索
-
计算引擎服务器负责处理代码分析报告并将其保存在SonarQube数据库中
- 一个SonarQube数据库存储:
-
SonarQube实例的配置(安全性,插件设置等)
-
项目,视图等的质量快照
-
服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和治理插件
-
在构建/持续集成服务器上运行一个或多个SonarScanner来分析项目
组合使用
-
开发人员在他们的IDE中编写代码并使用SonarLint运行本地分析。
-
开发人员将他们的代码推送到他们最喜欢的SCM:git,SVN,TFVC,…
-
Continuous Integration Server会触发自动构建,以及运行SonarQube分析所需的SonarScanner的执行。
-
分析报告将发送到SonarQube服务器进行处理。
-
SonarQube Server处理分析报告结果并将其存储在SonarQube数据库中,并在UI中显示结果。
-
开发人员通过SonarQube UI审核,评论,挑战他们的问题以管理和减少他们的技术债务。
-
经理从分析中接收报告。Ops使用API自动配置并从SonarQube中提取数据。Ops使用JMX监控SonarQube服务器。
分析源代码
sonar需要/可以依赖外部的工具有两类:测试覆盖和单元测试报告、外部的代码规则
-
测试覆盖的统计必须依赖外部的工具(否则结果会一直是0%),先执行外部工具生成报告,然后通过sonar的支持引入报告
-
单元测试的执行必须依赖外部的工具,先执行外部工具生成报告,然后通过sonar的支持引入报告
-
外部代码规则的引入必须依赖外部的工具,先执行外部工具生成报告,然后通过sonar的支持引入报告