You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SonarQube中整体代码与新代码的差异及扫描异常咨询

SonarQube 新代码与整体代码的区别及扫描问题解析

一、整体代码与新代码的核心区别

  • 整体代码:统计项目中所有被扫描代码的全部问题,包含原有代码和新增/变更代码的所有缺陷、异味等。
  • 新代码:仅统计指定范围内的新增或修改代码中的问题,核心是聚焦于本次迭代或版本更新中引入的新问题,帮助团队只关注新增代码质量。

二、现象原因解析

  1. 首次扫描新代码无信息:首次扫描时没有历史扫描基线,SonarQube无法判定哪些是"新增"代码,因此新代码统计为空,而整体代码会正常显示所有代码的问题。
  2. 两次添加异味后新代码与整体代码数据一致:核心是没有正确配置新代码的对比基线,导致SonarQube默认将所有代码判定为新代码,具体原因包括:
    • 未关联Git等版本控制系统:SonarQube无法识别代码的变更记录,无法区分新旧代码。
    • 扫描时未指定版本号参数:每次扫描没有用sonar.projectVersion标记不同版本,SonarQube无法建立版本间的对比基准。
    • 新代码范围配置不当:默认的新代码范围可能设置为"最近30天"或"全部代码",而非基于上一版本的对比。

三、解决方法

  • 关联版本控制系统:在项目设置的「Source Code Management」中配置Git仓库信息,让SonarQube能读取代码变更记录。
  • 扫描时指定版本号:每次执行扫描命令时添加-Dsonar.projectVersion=xxx参数(比如首次用1.0,后续迭代用1.1、1.2),让SonarQube建立版本对比基线。
  • 调整新代码范围:在项目设置的「New Code Definition」中,选择「Previous version」作为新代码判定规则,这样新代码会自动与上一次扫描的版本对比,仅显示新增代码中的问题。

内容的提问来源于stack exchange,提问作者Manu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:00:42