- 代码质量、安全扫描和分析的平台
- 多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、单元测试覆盖率等
- 支持近30+种开发语言:包含主流开发语言java/python/c#/javascript/go/c++等
- 能够与开发工具(idea,eclipse)、CI/CD平台(jenkins)、版本控制管理工具(gitlab,github)等完美集成
- 能够帮助开发人员写出更干净、高质量、更安全的代码
docker官网https://www.sonarqube.org
sonarscanner官网https://hub.docker.com/_/sonarqube
PostgreSQL官网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/
SonarQube 7.9以后的版本已经放弃了MySQL 。国内下载速度比较理想。
sonarqube版本https://www.postgresql.org/
下载地址:
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
- 社区版(Community)
- 企业版(Enterprise)
- 数据中心版(Data Center)
- 开发版(Developer)
SonarQube也是一个C/S架构的服务。根据其官网所述,包含以下架构:
SonarQube服务端:- Web服务器
- 搜索引擎-Elasticsearch to back searches from the UI
- 后台计算服务-连接数据库
- SonarQube实例的配置信息,如安全、插件等
- 项目、视图的质量快照数据
- 安装在服务端的插件,例如语言包、SCM、认证、治理等等
docker 安装SonarQube1.bin 用来启动 SonarQube 服务,这里已经提供好了不同系统启动 | 停止脚本了,目前提供了 linux-x86-32、linux-x86-64、macosx-universal-64、windows-x86-32、windows-x86- 64
2.conf 用来存放配置文件,若需要修改配置,修改 sonar.properties 文件即可。
3.data 用来存放数据,SonarQube默认使用 h2 数据库存储,同时支持其他如Orace、Mysql、Postgresql数据库存储。
4.extensions 用来存放插件 jar 包,以后我们需要安装插件就放在这里。
5.lib 用来存放各种所依赖的 jar 包,包括上边各数据库驱动包 (默认已提供一个版本,如果版本不 匹配,则在这里手动更新下)。
6.logs 用来存放各日志信息
7.web 用来提供 SonarQube web 网页服务。
1. 拉取基础镜像
docker pull sonarqube:7.9.4-community
2. 创建并运行基础镜像
docker run -itd --name=sonarqube -p 9000:9000 sonarqube:7.9.4-community
3.查看日志sonar是否启动成功
docker logs -f sonarqube
sonarqube 安装成功了,可以打开浏览器查看页面 http://192.168.8.128:9000
sonar默认登陆用户密码为 admin/admin
中文插件方式一:
方式二
下载sonar-l10n-zh-plugin-1.29.jar
https://github.com/SonarQubeCommunity/sonar-l10n-zh
下载对应版本的汉化包
将下载的对应的jar包放入到extensions目录中
docker安装可以将/opt/sonarqube/{extensions,logs,data,conf} 四个目录挂载出来
安装sonarscanner可以脱离开发环境进行测试。sonarscanner可以帮助开发人员将代码上传远程sonarqube服务器上。
SonarQube在服务器端不支持32位系统。Sonarqube-scanner支持32位系统。最新版本已经无法下载32位操作系统的版本
官方文档https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
下载对应版本的SonarScanner
环境变量配置sonar-scanner配置环境变量 path中添加D:sonarqubesonar-scanner-4.2.0.1873-windowsbin
在cmd检查安装是否成功
sonar-scanner -v
编写sonar-project.properties在sonar-scanner.properties中配置对应的sonar.host.url 、sonar.sourceEncoding
D:sonarqubesonar-scanner-4.2.0.1873-windowsconfsonar-scanner.properties
文件内容调整如下:
sonar.host.url=http://localhost:9000
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
#项目的key 唯一不重复即可
sonar.projectKey=sonarScannerTest
#项目的名字
sonar.projectName=sonarScannerTest
#项目的版本
sonar.version=1.0
#需要分析的源码的目录,多个目录用英文逗号隔开
sonar.sources=src
#sonarQube扫描的对象是.class而不是.java文件
sonar.java.binaries=target/classes
#解析的开发语言,如果需要解析其他语言,需要下载对应的插件
sonar.language=java
#编码格式
sonar.sourceEncoding=UTF-8
扫描项目
首先执行mvn打包命名
mvn clean package
上传代码
sonar-scanner
查看sonarqube控制台,项目已成功扫描



