最近写了很多关于SonarQube的文章,在这里做一个综合性的总结。建议大家这样阅读本篇文章,先看文章的概要(无需点击具体知识点涉及的相关文章链接),对SonarQube有一个整体的印象!然后当大家在实际工作中遇到了具体的问题时,再详细阅读具体问题的解决方案。建议大家收藏这篇文章,只要大家想做SonarQube相关的工作,本篇文章一定会帮到您!
什么是SonarQube
SonarQube 是一个用于代码质量管理的开源平台,它不仅可以检测代码的错误和漏洞,还能分析代码的复杂性,以及检查代码的风格问题。
SonarQube分为社区版,开发版,企业版以及数据中心版,只有社区版是免费的,想更加深入地了解三者关系,请参考文章:
一文告诉您SonarQube的社区版,开发版,企业版以及数据中心版该怎样选_sonarqube社区版和企业版-CSDN博客
关于SonarQube的核心概念介绍可以参考文章:
会用SonarQube的同学们,SonarQube中的核心概念你们知道吗?_sonarqube 单元测试-CSDN博客
使用SonarQube的具体步骤
在使用SonarQube进行动态代码分析时,通常涉及以下步骤:
-
安装和配置SonarQube服务器。
关于SonarQube和其插件的安装详细过程可以参考文章:
仅需3步,花费10分钟,轻松搞定SonarQube 10.7安装-CSDN博客
一文带大家搞定在SonarQube中安装汉化插件和spotbugs插件的方法(下载插件失败的同学看这里!)_sonarqube汉化-CSDN博客
2.在项目中集成SonarQube插件,如SonarScanner。
关于SonarScanner的实用详情 可以参考文章:
一文带您了解SonarScanner的原理和使用方法(包括maven构建和命令行执行)_sonar-scanner-CSDN博客
分享一下使用高版本(3.10.x)sonar-maven-plugin 进行构建时需要注意的两个问题-CSDN博客
3.运行SonarScanner来分析代码质量。分析代码质量好坏的依据是:代码能否能够通过制定的规则检验,这些规则是SonarQube来提供的,通过检验与否的标准是由质量门禁Quality gates控制的。我们也可以引入外部工具提供的规则,例如spotbugs和Dependency check,规则越完善对代码检测越精细,当然投入的修复工作量也越多!企业往往针对自身的状况来自定义规则库
4.将分析结果发送到SonarQube服务器。
5.在SonarQube服务器上查看和分析代码质量报告。
SonarScanner和SonarQube
在这里需要特别强调一下SonarScanner和SonarQube二者的关系:
SonarScanner负责扫描代码,然后把结果发送到SonarQube。
SonarQube负责显示SonarScanner的扫描结果并提供扫描rules给SonarScanner。
SonarQube与持续集成工具结合使用
在实际工作中,SonarQube通常与持续集成工具(如Jenkins)集成,实现在代码提交或构建过程中自动进行代码质量检查。
关于SonarQube与Jenkins的集成,可以参考文章:
我么可以在持续集成的过程中通过API获取SonarQube的分析结果,并根据结果决定是否继续构建和部署流程,具体可以参考文章:
详解SonarQube Web API的使用方法以及典型应用场景(内附python代码)-CSDN博客
我们也可以配置gitlab,完成push代码以后自动触发jenkins构建相关操作,具体可以参考文章:
干货!Jenkins与Gitlab结合,实现Gitlab项目代码push后触发Jenkins任务的自动构建_gitlab提交push后自动触发构建jenkins-CSDN博客
spotbugs和Dependency check在SonarQube中的集成
Dependency-Check
Dependency-Check用来检查代码中是否存在任何已知的,公开披露的安全漏洞。他检查依赖项中是否存在漏洞的原理也跟我们熟知的病毒查杀软件一样,预先定义好目前已知的安全漏洞库,检查依赖包时,发现这些漏洞就会报错,最后定期更新安全漏洞库即可!
通过maven运行SonarQube Scanner就可以自动运行Dependency-Check;然后Dependency-Check的测试结果就可以在SonarQube助攻进行展示。具体细节可以参考文章:
详解SonnarQube 集成Sonar-dependency-check-plugin落地应用的方案以及安装过程中遇到的问题-CSDN博客
更多关于Dependency-Check的内容可以参考文章
代码依赖包安全漏洞检测神器 —— Dependency Check_dependency-check-report 分析-CSDN博客
Dependency Check的实战应用_dependencycheck使用-CSDN博客
Dependency check增量更新cve的实现方案_dependency check配置mysql数据库-CSDN博客想通过maven 运行dependency-check的小伙伴必看!详解dependency-check-maven 插件的高效参数配置_dependencycheck 与maven-CSDN博客
Dependency check 通过Maven构建时,配置Mysql数据库遇到的三个坑_owasp maven.xml不支持 nvdapidelay-CSDN博客
SpotBugs
SpotBugs用于对Java代码进行静态分析,查找相关的漏洞,我们可以同时使用SpotBugs和SonarQube中的代码校验规则,更加系统的对代码进行测试。
在SonarQube中安装SpotBugs的方法可以参考文章:
一文带大家搞定在SonarQube中安装汉化插件和spotbugs插件的方法(下载插件失败的同学看这里!)_sonarqube汉化-CSDN博客
关于更多介绍SpotBugs的文章链接如下:
使用神器Spotbugs,轻松入门静态代码分析-CSDN博客
spotbugs进阶必读!熟练使用过滤器,提升代码检查效率_spotbugs使用-CSDN博客
详解Spotbugs-maven-plugin(报告如何生成html测试报告)-CSDN博客
如何优化spotbugsXml.xml文件来方便debug的落地方案来了_spotbugs xml结果-CSDN博客
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!
标签:落地,SonarQube,代码,博客,Dependency,CSDN,文章,帮到 From: https://blog.csdn.net/liwenxiang629/article/details/145033479