分支页面能看到一次次分析记录,但【New Code】几乎不动,最常见的原因不是扫描没跑到,而是跑成了另一种分析类型,或分支参数没有真正生效,再加上新代码口径选得不贴合分支开发节奏。按下面顺序逐项核对,把入口、参数、生效结果三件事对齐,新代码通常就会恢复正常显示。
一、sonarQube分支分析看不到新代码怎么办
先把分支分析是否成立确认清楚,再处理新代码口径,避免在错误入口上反复调参。
1、确认实例支持分支分析
进入【Administration】查看版本与授权信息,确认实例具备Branch analysis能力,若实例不支持分支分析,分支参数即使写了也不会按预期生成分支视图。
2、分清分支分析与PR分析
检查流水线是否传入sonar.pullrequest.key、sonar.pullrequest.branch、sonar.pullrequest.base,只要带了这组参数就会走PR分析,新代码范围会以PR差异为主,和你在分支页想看的新代码周期不是同一套口径。
3、确认分支确实被创建而不是落到主分支
打开该次分析对应的【Background Tasks】记录,回看扫描日志里最终生效的sonar.branch.name,如果缺失或值不对,分析往往落到主分支,分支页自然看不到预期的新代码变化。
4、确认没有手工参数覆盖了CI自动识别
不少CI可以自动识别分支参数,但只要你手工传了分支参数,就会覆盖自动检测,常见误操作是把固定分支名写死在模板里,导致所有扫描都落在同一个分支视图。
5、排查新代码口径把变更排除在外
进入项目【Project Settings】→【New Code】,检查当前新代码定义是Reference branch、Previous version、Specific analysis还是Number of days,口径不匹配时会出现整体指标变了但新代码行数长期很小。
6、Reference branch场景重点查SCM与检出完整性
如果新代码用Reference branch,系统会用SCM数据对比当前分支与参考分支的当前状态,CI若浅克隆或没把参考分支拉到工作区,差异计算可能不完整,新代码会不稳定或直接为零。
二、sonarQube分支扫描参数怎么检查
参数检查的关键是看最终生效值,而不是只看脚本里写了什么,因为参数来源可能被多层覆盖。
1、先锁定本次分析到底跑到哪个项目
在扫描日志里核对sonar.host.url与sonar.projectKey,确认没有跑错环境或跑错项目,跑偏后你在目标项目里当然看不到新代码更新。
2、核对分支分析的核心参数是否出现且值正确
在日志里搜索sonar.branch.name,确认值等于当前构建分支名,若值为空或变成主分支名,先修分支名注入方式,再看页面表现。
3、PR分析要把三项参数当作一组检查
如果你确实是PR分析,日志里应同时出现sonar.pullrequest.key、sonar.pullrequest.branch、sonar.pullrequest.base,缺一项容易退化为普通分析,结果会落到主分支或分支页的视角里,造成你以为新代码不显示。
4、确认没有把分支分析与PR分析混在一次任务里
若同一次扫描既带sonar.branch.name又带PR参数,通常会直接报错或行为异常,做法是把流水线拆成两种路径,分支推送走分支分析,PR事件走PR分析。
5、需要临时验证新代码口径时用一次性覆盖参数
当你怀疑是新代码口径导致的显示异常,又不想改服务器设置,可以在该次扫描里使用sonar.newCode.referenceBranch做验证,让本次分析按参考分支差异计算新代码,用它快速判断问题是否出在口径。
三、sonarQube新代码口径与分支模型如何对齐
分支参数正确但新代码仍不符合预期,多半是口径与研发分支节奏不一致,按场景选法更稳。
1、功能分支与短周期分支优先用Reference branch
在【Project Settings】→【New Code】选择Reference branch,并把参考分支设为main或develop,让新代码始终以主干当前状态做差异判断,更贴合合并前的质量门禁。
2、按版本发布的主干用Previous version并规范版本号
如果选择Previous version,要让版本号与发布节奏一致,避免把每次构建号都当版本导致起点频繁漂移,团队会感觉新代码忽多忽少且难复核。
3、需要人为划定迭代起点时用Specific analysis
当你希望从某次里程碑开始重新统计新代码,在【New Code】里选Specific analysis并指定那次分析作为起点,后续变更都按该起点滚动,评审口径更容易统一。
4、口径修改后必须触发一次新的分析再判断
新代码定义变更不会自动重算历史分析,改完设置后重新触发一次分支扫描,再回到【New Code】视图对照行数与问题分布,确认口径已按预期生效。
5、把最小自检清单固化到流水线日志里
在扫描前输出构建分支名与目标分析类型,在扫描后输出最终生效的sonar.branch.name或PR参数组,这样下次再出现新代码不显示,你可以先用日志确认是参数覆盖还是口径不匹配。
总结
处理sonarQube分支分析看不到新代码怎么办,sonarQube分支扫描参数怎么检查,优先把分析类型分清,保证分支分析只用sonar.branch.name,PR分析只用PR参数组,再到【Project Settings】→【New Code】把口径按分支生命周期选Reference branch或按发版选Previous version,并用【Background Tasks】日志核对最终生效值。入口对齐、参数生效值对齐、新代码口径对齐之后,新代码视角通常会稳定恢复。