简介
官网:Code Quality and Code Security | SonarQubeCatch bugs and vulnerabilities in your app, with thousands of automated Static Code Analysis rules.https://www.sonarqube.org/DockerHub:Docker Hub
https://hub.docker.com/_/sonarqube
Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。 此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。
工作原理
SonarQube 并不是简单地将各种质量检测工具的结果(例如 FindBugs,PMD 等)直接展现给客户,而是通过不同的插件算法来对这些结果进行再加工,最终以量化的方式来衡量代码质量,从而方便地对不同规模和种类的工程进行相应的代码质量管理。 SonarQube 在进行代码质量管理时,会从图 1 所示的七个纬度来分析项目的质量。
SonarQube 可以支持 25+ 种编程语言,针对不同的编程语言其所提供的分析方式也有所不同: 对于所有支持的编程语言,SonarQube 都提供源了代码的静态分析功能; 对于某些特定的编程语言,SonarQube 提供了对编译后代码的静态分析功能,比如 java 中的 class file 和 jar 和 C# 中的 dll file 等; 对于某些特定的编程语言,SonarQube 还可以提供对于代码的动态分析功能,比如 java 和 C# 中的单元测试的执行等。
远程客户机可以通过各种不同的分析机制,从而将被分析的项目代码上传到 SonarQube server 并进行代码质量的管理和分析,SonarQube 还会通过 Web API 将分析的结果以可视化、可度量的方式展示给用户。
使用 Docker 方式安装
- 首先配置安装好Docker
- 优化系统
sysctl -w vm.max_map_count=524288 sysctl -w fs.file-max=131072 ulimit -n 131072 ulimit -u 65536
安装数据库 postgres
docker run --name postgres --restart=always -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres:latest
创建数据目录
mkdir -p /opt/sonarqube/{data,logs,conf,extensions} chown -R 1000. /opt/sonarqube
安装 sonarqube
docker run --name sonar --link postgres --restart=always \ -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar \ -e SONARQUBE_JDBC_USERNAME=sonar \ -e SONARQUBE_JDBC_PASSWORD=sonar \ -v /opt/sonarqube/logs:/opt/sonarqube/logs \ -v /opt/sonarqube/data:/opt/sonarqube/data \ -v /opt/sonarqube/conf:/opt/sonarqube/conf \ -v /opt/sonarqube/extensions:/opt/sonarqube/extensions \ -p 9000:9000 -d sonarqube:latest
- 打开浏览器 访问 http://YOUIP:9000 http://192.168.1.61:9000/
- 默认用户名密码: admin/admin
- 首次登陆会要求更改密码
- 登陆后的界面
- 安装常用插件: Chinese pack、checkstyle、findbugs、pmd
使用
在maven项目中执行如下命令
mvn clean install sonar:sonar
k8s 中搜索 插件 sonarqube 安装即可