发布时间: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间的天数,距今超过该天数以上的则为旧代码。

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

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

二、SonarQube扫描规则和检查点
SonarQube扫描代码的原理是将代码解析成AST树,再将树通过内置规则遍历,来检测是否有匹配扫描规则的情况,匹配时则生成issues问题,所以规则是SonarQube静态代码分析的核心条件。SonarQube规则由SonarQube官方提供并按实际情况更新,非官方只能通过插件形式增加或修改规则。
在SonarQube网页端的Rules页面可以查看当前已有的内置规则,左侧Language栏可以筛选对应编程语言的规则,当前共有3794条规则,覆盖大多数问题场景。

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

本文为各位读者讲解并解决了SonarQube扫描检测不到新代码,SonarQube扫描规则和检查点的难题。SonarQube的新旧代码区分扫描机制为开发团队提供了高效的代码质量检测手段,但前提是新代码必须被正确识别到,这其中一部分涉及新代码识别设置,另一部分涉及扫描参数,只有二者精准配合,再结合SonarQube的扫描规则和检查点功能,SonarQube检测结果才能又快又准。
展开阅读全文
︾
读者也喜欢这些内容:
SonarQube是代码测试工具吗 SonarQube如何配置SAML
软件代码质量管理从以前到现在经历了翻天覆地的变化,从最初的手工代码审查,到自动化测试工具的出现,再到如今SonarQube等综合检测应用的兴起,软件代码检测越来越正规、专业,带来的是软件市场水平整体的提高。并且SonarQube平台后续还支持通过SAML协议单点登录,大大便利了各大企业内部使用,成为如今众多企业进行代码检测的主要工具。那么SonarQube是代码测试工具吗,SonarQube如何配置SAML,接下来一起来了解一下。...
阅读全文 >
SonarQube怎么扫描java单元测试 SonarQube java规则
保障代码质量是一个系统工程,需要从多个维度构建完善的质量保障体系。在功能验证方面,可以通过编写单元测试用例来确保代码逻辑的正确性,而在代码质量方面,则需要借助SonarQube等代码质量分析工具来识别潜在的代码缺陷。值得注意的是,单元测试同样可以利用SonarQube来扫描获取。那么,SonarQube怎么扫描java单元测试,SonarQube java规则是怎样呢?...
阅读全文 >
SonarQube分支分析怎么启用 SonarQube分支分析流水线集成流程
现代软件开发往往采用多分支并行开发的模式,团队内部成员各自开发自己的任务功能,再由团队leader审阅合并分支形成项目完整代码,这在一定程度上提升了开发效率。在审阅之前,可使用SonarQube为这些不同的功能分支进行独立分析,以确定分支代码的安全性和正确性,及时发现潜在问题,当然分支分析也可集成到CI/CD流程中实现自动化。在下文中,将深入探讨SonarQube分支分析怎么启用,SonarQube分支分析流水线集成流程,进而为团队提供更科学的质量保障体系。...
阅读全文 >