SonarQube - 常用配置与操作
1 - SonarQube服务器中的数据库配置
2019年4月10号,SonarQube发文称在7.9之后,所有的SonarQube的版本(CE、DE、EE和DCE)中将停止对MySQL的支持。
建议所有的商业环境中使用PostgreSQL,尤其是当需要很多实例同时运行或者可能会随着时间的推移变得越来越大的场景。
当前官网对数据库的要求:https://docs.sonarqube.org/latest/requirements/requirements/
更改数据库需要修改主配置文件:/usr/share/sonarqube-6.7.7/conf/sonar.properties
,然后重启sonar服务。
涉及的参数:
- sonar.jdbc.username:取消注释,并添加内容
- sonar.jdbc.password:取消注释,并添加内容
- sonar.jdbc.url:取消对应数据库类型的注释
2 - 账户权限配置
2.1 修改admin用户密码及信息
2.2 设置“Force user authentication”
管理员默认账号和密码为admin/admin,登录后,设置“Force user authentication”
2.3 创建新用户
2.4 创建组
默认有两组用户
- sonar-administrators:系统管理员组,默认只有admin属于该组,后续可添加成员
- sonar-users:普通用户组,新增加的用户默认属于该组
3 - 插件
只有管理员才有权限安装插件。
https://docs.sonarqube.org/latest/setup/install-plugin/
安装方式
- 界面安装:以管理员账号登录,然后点击页面上方的“Administration”->“Marketplace”,选择插件并根据提示安装
- 手动安装:适合无网络环境,登录后台手工安装下载的文件
手动安装插件步骤:
- Plugin Library:https://docs.sonarqube.org/display/PLUG/Plugin+Library, 下载对应版本的jar包
- 将jar包存放在"
\extensions\plugins"目录 - 同一类插件,只能有一个版本,不能多个版本共存
- 重启SonarQube服务器
[root@node201 plugins]# pwd
/usr/share/sonarqube-6.7.7/extensions/plugins
[root@node201 plugins]# ll
total 40508
-rw-r--r-- 1 sonar sonar 92 Apr 16 2019 README.txt
-rw-r--r-- 1 sonar sonar 2703958 Apr 15 2019 sonar-csharp-plugin-6.5.0.3766.jar
-rw-r--r-- 1 sonar sonar 1618672 Apr 15 2019 sonar-flex-plugin-2.3.jar
-rw-r--r-- 1 sonar sonar 6759535 Apr 15 2019 sonar-java-plugin-4.15.0.12310.jar
-rw-r--r-- 1 sonar sonar 3355702 Apr 15 2019 sonar-javascript-plugin-3.2.0.5506.jar
-rw-r--r-- 1 sonar sonar 38307 Nov 28 21:55 sonar-l10n-zh-plugin-1.19.jar
-rw-r--r-- 1 sonar sonar 3022870 Apr 15 2019 sonar-php-plugin-2.11.0.2485.jar
-rw-r--r-- 1 sonar sonar 4024311 Apr 15 2019 sonar-python-plugin-1.8.0.1496.jar
-rw-r--r-- 1 sonar sonar 3625962 Apr 15 2019 sonar-scm-git-plugin-1.3.0.869.jar
-rw-r--r-- 1 sonar sonar 6680471 Apr 15 2019 sonar-scm-svn-plugin-1.6.0.860.jar
-rw-r--r-- 1 sonar sonar 2250667 Apr 15 2019 sonar-typescript-plugin-1.1.0.1079.jar
-rw-r--r-- 1 sonar sonar 7368250 Apr 15 2019 sonar-xml-plugin-1.4.3.1027.jar
[root@node201 plugins]#
4 - 中文界面
- 以管理员账号登录,用户名和密码均为admin,
- 然后点击页面上方的“Administration”->“Marketplace”,
- 在下方的Plugins下的搜索框中输入“Chinese Pack”,选择进行中文语言包安装
- 根据提示重启SonarQube Server
5 - 代码扫描
代码规则
代码规则定义了如何扫描代码并识别潜在的问题,是SonarQube对源代码进行分析的基础。
SonarQube通过这些代码规则来进行代码质量检查和判断。
质量配置
定义如何对潜在的问题进行评估,如何根据评估结果调整扫描规则,可以自定义质量标准。
质量阈
作为质量门禁和关卡,是判断代码质量的强制标准,例如如果代码覆盖率小于该阈值,则质量不合格。
可以根据需要自定义。
6 - 与Jenkins集成
- 项目文件中包含sonar-project.properties文件,并配置了snoar相关参数
- 在Jenkins系统配置页面的SonarQube部分,添加SonarQube服务器信息
- 应将SonarQube的认证信息存放在Jenkins凭据中,通过凭据ID来调用认证信息
- Jenkins安装 SonarQube Scanner 插件,在Jenkinsfile中编写相关代码扫描步骤
- 执行流水线任务进行调试
7 - Sonar Scanner
- 静态代码分析工具,旨在帮助开发者带来更高质量的代码,SonarQube使用Sonar Scanner进行代码扫描。
- 提供了一个工作流,通过扫描代码并提供有关编码错误、漏洞、代码异味等方面的问题的反馈,帮助开发团队优化其代码质量。
- 官方文档:https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scanners/sonarscanner/
8 - 参考消息
- SonarQube部署及代码质量扫描入门教程:https://cloud.tencent.com/developer/article/1484850
- Sonar代码质量与技术债 : https://www.jianshu.com/p/ecde17e91711
- Jenkins+SonarQube+Gitlab搭建自动化持续代码扫描质平台:https://mp.weixin.qq.com/s/V_IpoSDcWr37BE3sWKTbyw
- SonarQube 搭建代码质量管理平台(一): https://www.jianshu.com/p/7d1c0f5dcc78
- SonarQube 搭建代码质量管理平台(二): https://www.jianshu.com/p/dd2b2be06d38
行动是绝望的解药!
欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!
以所舍,求所得,有所获,方所成。