SonarQube 01 代码质量平台简介与安装

网友投稿 496 2022-11-02


SonarQube 01 代码质量平台简介与安装

SonarQube 简介

​​SonarQube®​​是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和拉取请求的持续代码检查。

​​Code Quality and Code Security | SonarQube​​

可以对各种语言,几乎常用的主流语言都是支持的,所以一说到代码扫描就会学到sonaqube

开发人员在IDE开发代码,可以安装SonarLint插件进行提交前代码扫描,如果本地扫描没有问题那么将代码提交gitlab,当开发人员提交代码到版本控制系统中,自动触发jenkins进行代码扫描。(sonaelint最后也会连接到服务器sonarqube去扫描的)

开发人员将代码提交到版本控制系统之后,触发了ci工具,开始跑流水线跑管道,最后将扫描的结果传到sonarqube上面,最后将质量阈以及其他消息以邮件的方式通知用户。

代码扫描过程

开发人员 IDE 写代码 (SonarLint)

提交代码∶GitLab、SVN、Bitbucket   (Build、UnitTest 、Sonar)

提交流水线∶CI Server (Jenkins/GitLabCI)

扫描成功扫描失败∶ 邮件通知提交人

扫描报告

SonarQube平台安装配置

SonarQube Server启动3个主要进程:

Web服务器,供开发人员,管理人员浏览高质量的快照并配置SonarQube实例基于Elasticsearch的Search Server从UI进行搜索服务。Compute Engine服务器,负责处理代码分析报告并将其保存在SonarQube数据库中,主要是es,做索引。

SonarQube数据库要存储:SonarQube实例的配置(安全,插件设置等)项目,视图质量快照。服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和管理插件。在持续集成服务器上运行一个或多个SonarScanner,以分析项目。(将最终扫描的结果推送到server上面去)

不同的语言有不同的代码规范和规则(以插件的形式体现),这些方式以什么方式体现出来的呢,都是以jar包的形式,每个语言都有其独立的jar包,装到server上面就可以使用这些规则的。所以整体组成就是上面四个部分。

这里使用容器,走的是内嵌的数据库,如果生产上面需要额外的配置数据库## 创建数据目录mkdir -p /data/cicd2/sonarqube/{sonarqube_conf,sonarqube_extensions,sonarqube_logs,sonarqube_data}chmod 777 -R /data/cicd2/sonarqube/## 运行docker run -itd --name sonarqube \ -p 9000:9000 \ -v /data/cicd2/sonarqube/sonarqube_conf:/opt/sonarqube/conf \ -v /data/cicd2/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \ -v /data/cicd2/sonarqube/sonarqube_logs:/opt/sonarqube/logs \ -v /data/cicd2/sonarqube/sonarqube_data:/opt/sonarqube/data \ sonarqube:8.9.1-community## 验证docker logs -f sonarqube## lib目录(低于SonarQube8.9.1可以配置持久化,以支持多分支插件。)mkdir -p /data/cicd/sonarqube/sonarqube_libcd /data/cicd/sonarqube/sonarqube_libdocker cp sonarqube:/opt/sonarqube/lib/* ./docker run -itd --name sonarqube \ -p 9000:9000 \ -v /data/cicd2/sonarqube/sonarqube_conf:/opt/sonarqube/conf \ -v /data/cicd2/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \ -v /data/cicd2/sonarqube/sonarqube_logs:/opt/sonarqube/logs \ -v /data/cicd2/sonarqube/sonarqube_data:/opt/sonarqube/data \ -v /data/cicd2/sonarqube/sonarqube_lib:/opt/sonarqube/lib \ sonarqube:8.9.1-community

默认账号: admin/admin


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Kubernetes ConfigMap挂载导致容器目录覆盖的问题解决
下一篇:处理@PathVariable注解允许参数为空、允许不传参数的问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~