【问题标题】:Module "M1:M1" is already part of project "P1"模块“M1:M1”已经是项目“P1”的一部分
【发布时间】:2018-06-14 04:39:22
【问题描述】:

我们有 2 sonar 项目 (P1 & P2) 在 2 个不同/独立的 GIT 存储库 (G1 & G2) 上运行。这两个项目都在不同的分支上运行(P1 runs on B1 & P2 runs on B2)。

我们在 GITs G1G2 的不同分支上都有名为 M1M22 plugins/modules

  1. 在声纳项目P1 中,我们对(M1 & M2) 的2 个模块进行了分析和覆盖。

  2. 在声纳项目P2 中,我们在分析和覆盖方面都忽略了这两个模块(M1 & M2)。即,我已将它们包含在“sonar.coverage.exclusions”和"sonar.exclusions" 中。即使这样,当我们运行声纳项目P2 时,我们也会遇到错误

错误信息:

Module "M1:M1" is already part of project "P1"

Module "M2:M2" is already part of project "P1"

我很好奇为什么会显示此错误,因为它们来自不同的 GITrepositories 和它们的不同分支。

请建议我如何解决此问题。谢谢。

【问题讨论】:

  • SonarQube 的哪个版本?
  • 它是声纳 5.6.6

标签: java maven sonarqube sonar-runner sonarqube5.1


【解决方案1】:

除了项目名称之外,模块名称在 sonarqube 中也需要是唯一的,这不是很直观。我认为添加排除项和禁用该模块的声纳报告可能会有所不同。排除可能仍会导致一些报告。

所以我会 disable the sonar report 通过 skip 属性为这些模块提供:

<sonar.skip>true</sonar.skip>

在你不想再次报告的两个模块的 pom 文件中。

这应该避免声纳插件试图在声纳中创建这样的模块。在最坏的情况下,您可能需要删除声纳中已经包含不属于它的模块的旧项目。然后重新创建报告。

【讨论】:

  • 在这种特定情况下,使用 sonar.skip=true 解决方案可能会起作用。但是此更改忽略了对该存储库上运行的所有声纳项目的 M1 和 M2 模块的分析。我们有没有从声纳方面而不是 maven 的完整解决方案
  • 我不知道某些声纳功能可以在声纳方面将这样的东西分开。所以也许吧。如果我可能会问:为什么两个 git 存储库中都有插件的副本?为什么那些不是自己的模块/项目并在使用它们的两个项目中用作依赖项?
  • 项目中使用的插件很少,这在插件统一/重用方面遥遥领先,而不是拥有多个副本。我们将在 git-submodules 上工作,并且确信这个问题会再次出现 :)。我仍在调查,一旦我有解决方案,我会分享。非常感谢您的时间和支持
猜你喜欢
  • 1970-01-01
  • 2023-03-04
  • 2011-09-10
  • 2016-03-23
  • 2023-03-26
  • 2016-07-09
  • 2022-08-24
  • 2022-01-04
  • 2021-04-07
相关资源
最近更新 更多