DevOps / Jenkins / SonarQube

SonarQube社区版:实现多分支代码扫描的最佳实践

浅时光博客 · 3月20日 · 2023年 2.9w 次已读

一、场景描述

在我们做CICD流程建设中,结合SonarQube可以帮助团队更好地管理代码质量。在CICD过程中,将SonarQube作为一个步骤,可以自动执行代码扫描,并在提交代码之前发现潜在的问题。这有助于提高代码质量,减少代码缺陷和技术债务,并加速代码交付。

具体来说,当代码被提交到版本控制系统时,CI工具会触发构建过程。在构建过程中,SonarQube会自动执行代码扫描,并生成有关代码质量的报告。如果发现了问题,团队可以立即进行修复。当代码通过所有测试并准备发布时,SonarQube的报告可以帮助团队确定是否要对代码进行进一步的优化和改进。目前SonarQube有2个版本,区别如下:

  1. 功能:SonarQube Community 提供了基本的代码分析功能和报告,包括代码质量度量、代码规范检查、漏洞检测等。而 SonarQube Developer Edition 则提供了更强大的代码分析工具,例如支持针对安全性进行代码分析,更多的代码覆盖率分析选项,支持集成第三方 IDE文章来源(Source):https://dqzboy.com 和 CI 工具等。
  2. 许可证限制:SonarQube Community 是免费开源软件,可以自由使用和分发。而 SonarQube Developer Edition 则需要购买许可证才能使用。
  3. 技术支持:SonarQube Community 只提供社区支持,没有官方技术支持。而 SonarQube Developer Edition 则有官方技术支持,并且提供优先级更高的错误修复和新功能更新。
  4. 扩展插件:SonarQube Developer Edition 提供了更多的扩展插件和集成选项,例如与 Jira、GitHub 等工具的集成。这些扩展插件可以帮助团队更好地管理和监控项目的代码质量。
  5. 多分支扫描:SonarQube Community只支持主分支(也就是master或main分支)扫描,而SonarQube Developer Edition是支持多分支扫描的,扫描时指定分支参数-Dsonar.branch.name=文章来源(Source):浅时光博客分支名称  ,就可以实现多分支代码扫描

总的来说,SonarQube Community 适合小型或个人项目,而 SonarQube Developer Edition 则适合大型企业项目或需要高级特性和功能的项目。

devops项目推荐:CICD

二、操作流程

1、下载插件

  • 插件下载:下载地址
  • 注意:下载的插件版本要检查是否支持你正在使用的sonarqube版本

2、导入插件

登入到SonarQube所在的服务器,将上面下载的插件jar包,导入到sonarqube安装目录下的extensions/plugins目录中即可

  • 注意给插件授权
chown -R sonar. /usr/local/sonarqube/

3、修改配置

~]# vim /usr/local/sonarqube/conf/sonar.properties
# 将以下参数追加到配置中,注意jar包的版本号
sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.11.0.jar=web
sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.11.0.jar=ce

4、重启服务

插件导入完成之后,需要重启sonarqube服务生效

~]# systemctl restart sonar.service

三、构建测试

  • 如何使用多分支扫描

我们在进行扫描时,添加参数:-Dsonar.branch.name=扫描的分支  即可实现多分支扫描

  • 现在我们可以登入到sonarqube,选择我们上面手动模拟的项目,然后点击项目的分支(页面上的那个master)查看是否显示已经支持多分支扫描

四、SonarQube安装

SonarQube的安装、以及如何中文汉化的教程,可以阅读下面的文章。

以上就是本次文章所有知识点,如果文章对你有帮助就动动你那发财的小手,点个赞留个言,给本站加点热度。谢谢支持!


本文作者:浅时光博客
原文链接:https://www.dqzboy.com/12027.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

12 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. Pastel北京2024-12-3 · 18:12

    感谢分享!