前言
SonarQube是一个开源的代码质量管理平台,可以用于静态代码分析、代码质量管理和代码审查等。本主题将提供SonarQube的安装和使用指南,包括如何下载和安装SonarQube,如何配置和启动SonarQube服务器,如何使用SonarQube进行代码分析和报告生成等内容。通过本指南,读者可以快速掌握SonarQube的基本用法及p3c规则配置,提高代码质量和可维护性。
关于SonarQube
SonarQube是一个开源的代码质量管理平台,旨在帮助开发团队通过静态分析来提高其代码的质量、安全性和可维护性。
SonarQube可以检测各种编程语言的代码缺陷和安全漏洞,例如Java、C#、Python、JavaScript等。它提供了一个易于使用的Web界面,其中包含了各种报告和分析工具,以帮助开发团队更好地理解其代码质量问题。
SonarQube可以集成到开发工具链中,例如Maven、Gradle、Jenkins等,以便于在代码提交或构建时自动运行代码分析并提供反馈。它还可以与CI/CD流程集成,以帮助团队在构建和部署阶段及时发现和解决问题。
SonarQube的主要功能包括代码分析、代码规范检查、代码复杂度分析、安全漏洞检测等。它还提供了自定义规则、扩展插件等高级功能,以帮助团队满足其特定的代码质量要求和标准。
安装SonarQube
提示:sonarqube有JDK版本限制要求,可以访问官方文档查看,本文基于8.9.6-lts
进行安装,下面是该版本支持的平台
下面是支持的数据库及版本,不支持MySQL
本文将使用docker-compose方式编排docker容器部署,其他方式有时间再补充
docker启动方式
需提前安装docker环境和docker-compose工具
docker:https://www.runoob.com/docker/centos-docker-install.html
docker-compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
- 编写docker-compose.yml
version: "3"
services:
sonarqube:
image: sonarqube:lts-community
depends_on:
- db
environment:
TZ: Asia/Shanghai
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
volumes:
- /opt/data/sonarqube/data:/opt/sonarqube/data
- /opt/data/sonarqube/extensions:/opt/sonarqube/extensions
- /opt/data/sonarqube/logs:/opt/sonarqube/logs
- /opt/data/sonarqube/conf:/opt/sonarqube/conf
ports:
- "9000:9000"
db:
image: postgres:12
ports:
- "5431:5432"
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGERS_DB: sonar
volumes:
- /opt/data/postgresql:/var/lib/postgresql
- /opt/data/postgresql/data:/var/lib/postgresql/data
- 启动
docker-compose up -d
报错
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
- 解决方法:
在/etc/sysctl.conf文件最后添加一行vm.max_map_count=262144
执行/sbin/sysctl -p 立即生效
使用SonarQube
访问页面
正常来说,页面地址为ip:9000,如http://10.8.46.203:9000
用户名admin
,密码admin
然后设置密码
安装中文插件
在Administration
-Marketplace
安装后会提示需要重启,点击restart
即可
集成阿里巴巴p3c
安装
下载sonar-pmd-plugin-3.2.0-SNAPSHOT.jar
,上传至/opt/data/sonarqube/extensions/plugins/
(sonarqube扩展插件地址),然后重启服务器。
附下载链接
配置p3c规则
-
进入SonarQube地址,进入
质量配置
,点击创建
-
填写新配置信息,名称自定义,如
p3c
,语言选Java
,其他保持默认即可,然后点击创建
-
创建后自动调整配置页面,点击
更多激活规则
-
在过滤器搜索关键词
p3c
,可以看到 右边这个版本有51条规则,点批量修改
,选择激活p3c
,就可以将规则加到过滤器中 -
在
质量配置
页面,下拉至Java
配置,可以看到新增的p3c
配置,点右边的下拉框,将配置设置为默认
即可
扫描项目并上传报告至SonarQube
根据构建工具使用插件(如Maven等)
-
在项目页面,
新增项目
-
在项目,点击
配置分析器
-
输入或创建令牌,点
继续
-
根据构建技术,会有不同的命令
-
复制命令到CMD执行
使用SonarScanner插件
-
在https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/下载SonarScanner插件
-
将
bin
目录配置到Path
-
Linux
export SONAR_HOME=/var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/sonar export PATH=$PATH:$SONAR_HOME/bin source /etc/profile
-
Windows
在环境变量
Path
新增一行,填写SonarScanner的bin目录路径
-
-
使用命令
-
Linux
sonar-scanner \ -Dsonar.projectKey=lbx-ai-wdz-people-count \ -Dsonar.sources=. \ -Dsonar.host.url=http://10.8.46.203:9000 \ -Dsonar.login=1111
-
Windows
sonar-scanner.bat -D"sonar.projectKey=lbx-ai-wdz-people-count" -D"sonar.sources=." -D"sonar.host.url=http://10.8.46.203:9000" -D"sonar.login=1111"
-