SonarQube简介
2022-04-04 本文已影响0人
david161
SnoarQube是一个代码质量、安全扫描和分析的平台,他存在以下特点:
1)多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、单元测试覆盖率等
2)支持近30种开发语言:包含主流开发语言java/python/c#/javascript/go/c++等
3)能够与开发工具(idea,eclipse)、CI/CD平台(jenkins)、版本控制管理工具(gitlab,github)等完美集成
4)能够帮助开发人员写出更干净、高质量、更安全的代码
官网地址
https://www.sonarqube.org
docker官网
https://hub.docker.com/_/sonarqube
sonarscanner官网
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
github官网
https://github.com/newtmitch/docker-sonar-scanner
docker官网
https://hub.docker.com/r/newtmitch/sonar-scanner/
PostgreSQL官网
SonarQube需要配合数据库使用, SonarQube 7.9以后的版本已经放弃了MySQL 。这里我们使用PG作为配合的数据库,国内下载速度比较理想。
https://www.postgresql.org/
下载地址:
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
sonarqube版本
社区版(Community),这个功能比较简单,但是也足够我们开发人员使用了。
企业版(Enterprise),这个费用比较昂贵,比较少有企业使用。
数据中心版(Data Center)
开发版(Developer),还在开发中的版本,不建议使用。
SonarQube也是一个C/S架构的服务。根据其官网所述,包含以下架构:
SonarQube服务端:
1)Web服务器
2)搜索引擎-Elasticsearch to back searches from the UI。
3)后台计算服务-连接数据库。
后台数据库:
1)SonarQube实例的配置信息,如安全、插件等。
2)项目、视图的质量快照数据。
SonarQube Plugin
安装在服务端的插件,例如语言包、SCM、认证、治理等等
这里我们通过官网可以看到现在的长期支持版本是8.9的版本了,服务端要求是JDK11,而Scanner客户端则是JDK8和JDK11都支持。
8.9的版本支持的PG版本如下:
image.png
当然如果我们不用PG的话,默认会使用配套的H2数据库。
当然我们还可以选择老一点的长期支持版本,比如7.9.6,这里只是对应的数据库版本不一样。
image.png