为什么删除的 Maven 模块没有从 SonarQube 中消失?

Why are deleted Maven modules not disappearing from SonarQube?

我使用 SonarQube 分析了两个 Maven 项目 A 和 B,每个项目都有几个模块(这里只显示一个):

projectA
`- someModule

projectB

由于我将项目 A 中的 someModule 移至项目 B,因此在分析过程中出现如下错误:

Module "myGroupId:someModule" is already part of project "myGroupId:projectA"

项目 A 显然不再包含 'someModule'。经过新的分析后,它甚至没有作为组件显示在 Sonar GUI 中,但它仍然列在 'Project Configuration > Update Key'.

如何在不删除整个项目的情况下删除这样一个过时的组件?

作为解决方法,我现在将密钥 'projectA:someModule' 重命名为 'projectA:someModuleThatShouldNotExist',但我希望有人可以提出更好的解决方案...

您描述的状态很奇怪:如果您从项目 A 中删除了 "someModule" 并设法在 SonarQube 中成功分析了该项目,那么它不应该出现在 UI 任何更长的时间,您应该能够在项目 B 中对其进行分析。

但是正如您在 'Project Configuration > Update Key' 中看到的这个模块,那么您可能有一个解决方法:

  1. 更新项目 A 中该模块的密钥(例如,只需将“-off”附加到密钥)
  2. 运行 使用 "someModule" 对项目 B 的分析:这应该有效

创建的链接问题已作为 "Won't Fix" 关闭,因此除了删除原始项目外没有其他解决方案。

这真的很不幸,因为当您尝试分阶段拆分原始项目时需要删除原始项目,而不是通过保留原始 group/artifact 名称来更新谁知道有多少依赖位置将导致下一次扫描以前可能标记为 "Won't fix" 或类似状态的原始 repo 重新标记问题的数量,这会给声纳维护者带来更多噪音和工作。