SonarQube中文网站 > 使用技巧 > SonarQube扫描检测不到新代码 SonarQube扫描规则和检查点

SonarQube扫描检测不到新代码 SonarQube扫描规则和检查点

发布时间:2025-09-23 08: 00: 00

品牌型号:联想 E550C ThinkPad

系统:Windows 11

软件版本:SonarQube Server 25

SonarQube的代码扫描主要分为旧代码扫描和新代码扫描两部分,并会在报告中清晰呈现新代码与旧代码的对比分析结果,利用新旧代码的区分,帮助我们将注意力更多放在新代码中,而不被历史遗留问题分散注意力。但是,根据SonarQube设置不同,大家可能会遇到新代码未被正确识别或扫描规则和检查点未正确匹配等情况,因此本文将深入探讨SonarQube扫描检测不到新代码,SonarQube扫描规则和检查点的问题,确保大家得到的扫描结果全面可靠。

一、SonarQube扫描检测不到新代码

什么是新代码?不同的用户对于新代码的定义有所不同,有的人认为最近一次提交的代码是新代码,有的人则认为最近一个月的代码都是新代码,SonarQube考虑到大家的想法差异,因此对新代码的识别扫描,提供了个性化配置。

1、当我们扫描检测不到新代码时,首先使用管理员账号admin登录SonarQube网页端,进入后台Administration管理页面,在Configuration的“New Code”设置中,可以从两种新代码识别方式中选择一种来区分新旧代码。

方式一为按版本区分,上个版本则为旧代码,本版本为新代码;方式二按照天数区分,在“Specify a number of days”输入框中填写1到90间的天数,距今超过该天数以上的则为旧代码。

区分新代码
图1:区分新代码

2、如果选择了按照版本区分新旧代码,则需要在扫描时,通过配置文件或命令行参数“sonar.projectVersion”显示指定版本号,且每次扫描版本号需要及时变更。如果本次扫描和上次扫描使用同一个版本号,则会被视为是新代码。

指定版本号
图2:指定版本号

3、在多分支开发中,如果当前不处于Gitlab CI/CD等自动流中,则需通过“sonar.branch.name”参数手动指定扫描哪个分支,否则SonarQube会默认扫描主分支,此时在其他分支中则无法检测到新代码。

指定分支
图3:指定分支

二、SonarQube扫描规则和检查点

SonarQube扫描代码的原理是将代码解析成AST树,再将树通过内置规则遍历,来检测是否有匹配扫描规则的情况,匹配时则生成issues问题,所以规则是SonarQube静态代码分析的核心条件。SonarQube规则由SonarQube官方提供并按实际情况更新,非官方只能通过插件形式增加或修改规则。

在SonarQube网页端的Rules页面可以查看当前已有的内置规则,左侧Language栏可以筛选对应编程语言的规则,当前共有3794条规则,覆盖大多数问题场景。

规则页面
图4:规则页面

单击规则链接可跳转到规则页面,在“Why is the issue”中能看到具体规则的检查点,如图代码“return a <> b”所示,不等于号“<>”在新版Python中已被弃用,因此该检查点会被标记为问题,正确的代码形式应为“return a != b”。

检查点
图5:检查点

本文为各位读者讲解并解决了SonarQube扫描检测不到新代码,SonarQube扫描规则和检查点的难题。SonarQube的新旧代码区分扫描机制为开发团队提供了高效的代码质量检测手段,但前提是新代码必须被正确识别到,这其中一部分涉及新代码识别设置,另一部分涉及扫描参数,只有二者精准配合,再结合SonarQube的扫描规则和检查点功能,SonarQube检测结果才能又快又准。

展开阅读全文

标签:

读者也访问过这里:
SonarQube
从一开始就生成高质量的代码
立即购买
最新文章
SonarQube常见错误 SonarQube报告解读
软件开发过程中,许多测试团队均使用SonarQube来精准帮助开发人员评测代码质量,该工具可以以报告形式呈现扫描结果,并以此推动团队针对性地优化代码。但是,对于初次使用SonarQube的新手用户,很多人都看不懂报告中的各项指标。因此,在本篇文章中,我们将一起探索SonarQube常见错误,SonarQube报告解读,以便能够更好地利用这一工具优化代码。
2025-12-19
SonarQube质量门如何设置 SonarQube质量门条件阈值配置
SonarQube的质量门功能为我们提供了定义和强制执行代码质量标准的有效途径,它通过设置各项指标的合理检测阈值,帮助我们系统地检测代码质量并进行多项指标的量化评估,只有这些指标都符合预设标准,质量门才能顺利通过,从而确保交付的代码具备良好的可维护性、可靠性和安全性。在本文中,我们将一起学习SonarQube质量门如何设置,SonarQube质量门条件阈值配置,借助质量门为代码“保驾护航”。
2025-11-01
SonarQube代码扫描如何配置 SonarQube扫描规则选择与项目绑定步骤
随着技术不断革新发展,如今的软件质量监测,早已告别二十年前的人工审查模式,而是采用一系列质量检测插件或工具进行自动化扫描。SonarQube作为代码质量检测方面的佼佼者,内置了数千条检测规则,且整合了一系列检测工具,我们无需再自己繁琐地整合,它还可生成网页检测报告,让质量检测成为一项快速、精准、简单的工作。那么,SonarQube代码扫描如何配置,SonarQube扫描规则选择与项目绑定步骤是什么呢?
2025-11-01
SonarQube规则引擎怎么配置 SonarQube规则引擎自定义规则
优秀的开发团队都知道,统一的代码规范和质量标准是项目成功的重要保障,SonarQube规则引擎的强大之处不仅在于其丰富的多语言内置规则库,更在于它允许我们根据实际需求创建完全定制化的检查规则。本文将带领各位读者全面了解SonarQube规则引擎怎么配置,SonarQube规则引擎自定义规则的相关技巧,帮助大家开发出针对性强、效果显著的规则。
2025-11-01
SonarQube CI/CD集成是什么 SonarQube CI/CD集成流水线插件配置方法
随着测试自动化理念和相关工具的逐步普及,CI/CD集成已经成为软件开发中十分重要的一环,在这个过程中,如何确保代码质量不因快速交付而下降,成为每个开发团队必须面对的问题。SonarQube作为代码质量检查的一大利器,提供了一种优雅的集成方案,它能够在自动化构建流程中嵌入代码质量检查,实现提交代码、质量检查、发布上线的全自动化。本文将全面解析SonarQube CI/CD集成是什么,SonarQube CI/CD集成流水线插件配置方法,让代码质量管理真正融入开发工作流。
2025-11-01
SonarQube规则库管理是什么 SonarQube规则库管理怎么做
SonarQube通过扫描代码来发现代码中存在的BUG问题、安全漏洞、重复代码,但我们是否想过它是如何发现的呢?这一切依赖于SonarQube内置的规则库,这些规则库存储了数千条经过精心设计的检测规则,涵盖了代码安全性和可维护性等多个维度,通过静态代码分析技术,能够精准识别出代码中的潜在问题,因此我们要做好规则库管理,具体SonarQube规则库管理是什么,SonarQube规则库管理怎么做,我们会在下面进行讲解。
2025-11-01

读者也喜欢这些内容:

咨询热线 18015636924