【问题标题】:SonarQube Analysis failing to recognize new componentSonarQube 分析无法识别新组件
【发布时间】:2018-08-01 15:05:31
【问题描述】:

您好,我们在项目中使用 sonarqube,我们有一个非常特殊的要求,我们只需要对新代码进行分析。

所以假设我的主分支有 5(A,B,C,D,E) 组件。我正在对 master 分支进行第一次分析,以对所有现有问题进行基线分析。

使用相同的项目密钥,我正在从主分支或发布特定分支对我的分支运行第二次分析(这样做是为了突出显示新代码上的问题)。此时我的发布分支仅包含 2(A1,B1) 组件,其中 A1 = A + 修改。 “这工作得很好,只突出了引入的新问题”。

如果一个新组件说 C1(C + 修改)已添加到分支,我的第三次分析就会出现问题。目前,SonarQube 将 C1 视为全新的组件,并将所有问题报告为新问题,尽管它们存在于 master 分支(在 C 组件上)。

TimeMachine 功能显示自基线(第一次分析的版本名称),但始终标记上次分析的问题。

我们正在使用 SonarQube 5.6 社区版

【问题讨论】:

  • 您可能需要查看How to ask a good question 上的指南,因为目前您的情况尚不清楚。您说您“再增加 1 个班级”,然后抱怨整个班级都被视为新班级。嗯……应该是的。您刚刚添加了它。
  • @G.Ann-SonarSourceTeam :编辑了我的问题。如果仍然需要澄清,请告诉我

标签: sonarqube salesforce sonar-runner sonarqube-scan


【解决方案1】:

假设我正确理解您的情况,我认为您将从升级到至少当前的 LTS:6.7.1,如果不升级到当前版本:7.0,将受益匪浅。从 5.6 开始,我们在问题回溯方面做了一些重要的工作。假设您的分析可以访问 SCM 指责信息,则在相关时间段之外提出的问题不会显示为“新”。

也就是说,我认为你做错了。 IMO 您的所有分析都应包括您的所有文件,并且通过正确设置泄漏期(并从问题回溯中受益),您将能够将真正的新问题与旧问题区分开来。

【讨论】:

  • 泄漏期工作正常!唯一的问题发生在下面的场景中。假设我的第一次分析在版本 1 的组件(A、B、C、D 和 E)上运行。现在在我的第二次分析期间,只有组件(A、B)与版本 2 一起存在。现在,在我的第 3 次分析中,如果我将组件 C 与 A、B 一起添加,那么尽管泄漏期配置为检查版本 1 ,但 sonarqube 将组件 C 视为新组件,因为它在上次分析(版本 2)中不可用。希望这能解决我的情况和问题
猜你喜欢
  • 1970-01-01
  • 2018-08-29
  • 2020-07-27
  • 2016-01-26
  • 1970-01-01
  • 2017-04-30
  • 1970-01-01
  • 2020-10-13
  • 2017-02-22
相关资源
最近更新 更多