参考
1. 环境
- 操作系统: Windows 7(linux 基本相同,注意SonarQube内置es, es启动不能使用root)
- JDK版本: 11.0.8
- sonarqube版本: 7.4.0
- 附加sonarqube插件:
现在是2020-10-27,最新版本是8.5,版本太新,很多插件不支持,有想使用8.5版本的可以
参考: Windows环境从零搭建SonarQube 8.5 最新版
2. 下载
全部历史版本: https://binaries.sonarsource.com/Distribution/sonarqube/
- 找到7.4版本进行下载
3. 安装部署
解压后需要安装3个插件,分别是汉化插件、多分支管理插件、集成阿里p3c插件,外加配置一个Mysql数据库
3.1 下载汉化包
sonar-l10n-zh-plugin-1.24.jar 点击下载 提取码 6666,下载后放到 .\sonarqube-7.4\extensions\plugins
文件夹下
其他版本汉化包请参考: SonarQube中文插件安装
3.2 配置Mysql5.7数据库
docker 安装Mysql5.7数据库请参考: Docker安装Mysql 5.7并使用
*在Mysql数据库中创建表空间sonar
修改配置文件: sonarqube-7.4\conf\sonar.properties
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.jdbc.url=jdbc:mysql://192.168.102.27:13306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
3.3 安装多分支管理插件
sonarqube-community-branch-plugin-1.0.2.jar 点击下载 提取码 6666,下载后放到 .\sonarqube-7.4\extensions\plugins
文件夹下
- 使用: 扫描时,增加
-Dsonar.branch.name=${GIT_BRANCH}
3.4 集成阿里p3c规范
sonar-pmd-plugin-3.2.0-SNAPSHOT.jar 点击下载 提取码6666,下载后放到 .\sonarqube-7.4\extensions\plugins
文件夹下
4. 启动
4.1 执行脚本
执行 .\bin\windows-x86-64\StartSonar.bat
途中没有报错并出现 SonarQube is up
表示启动成功
4.2 查看UI界面
URL: http://localhost:9000
用户名密码: admin/admin
4.3 集成阿里p3c检测规则
-
进入到质量配置菜单,可以看到Java规则配置只有
Sonar way
一组内置规则
-
点击 [创建] ,配置 名称和语言
-
点击 更多激活规则
-
筛选p3c 发现p3c规则有51条
点击批量修改 => 活动p3c ~= 激活p3c
-
激活成功
-
再回到质量配置中发现已经有51条规则在 p3c中
-
可以将p3c设为默认,弃用 Sonar way
-
也可以将p3c继承 Sonar way,实现规则共享
5. 使用
5.1 创建项目
-
创建令牌,随意编写令牌名称
-
生成令牌,点击继续
-
项目创建完毕
-
拓展: 令牌可以在用户下进行管理,包括生成和回收
5.2 检查提交
- 方式一: 使用mvn进行提交
注意: 添加-X 参数标识会打印详细日志,方便排错
mvn sonar:sonar -Dsonar.host.url=http://localhost:9000 \
-Dsonar.branch.name=master \
-Dsonar.java.binaries=. \
-Dsonar.login=09904533c04eee38bc6c6d5b4acfc4fb73865626 \
-X
- 方式二: 使用sonar-scanner 进行提交
安装部署详见: sonar-scanner - Windows安装与使用
sonar-scanner -Dsonar.host.url=http://localhost:9000 \
-Dsonar.branch.name=master \
-Dsonar.projectKey=pushmessage \
-Dsonar.sources=. \
-Dsonar.java.binaries=. \
-Dsonar.java.source=11 \
-Dsonar.login=09904533c04eee38bc6c6d5b4acfc4fb73865626 \
-X
5.3 检查结果查看
- 通过改变
-Dsonar.branch.name
参数,可实现多分支检测