【发布时间】:2023-03-26 16:21:01
【问题描述】:
我有两个项目(A 和 B),它们使用相同的可重用模块 (C)。我将 A 上传到 sonarqube 没有问题,但是当我上传 B 时,sonar-maven-plugin 告诉我模块 C 已经是项目 A 的一部分。我该如何修复它?我希望将我的两个项目都上传到 sonarqube。
【问题讨论】:
我有两个项目(A 和 B),它们使用相同的可重用模块 (C)。我将 A 上传到 sonarqube 没有问题,但是当我上传 B 时,sonar-maven-plugin 告诉我模块 C 已经是项目 A 的一部分。我该如何修复它?我希望将我的两个项目都上传到 sonarqube。
【问题讨论】:
我也遇到了这个问题。如果您正在运行较新版本的 Maven,则可以排除模块。这对你来说可能是也可能不是一个足够的答案,但对我来说。
在项目 A 上运行 Sonar 时,请正常运行(无 --projects 开关)。 在项目 B 上运行 Sonar 时,提供排除列表(使用 --projects 开关)。
对于项目 A:
mvn sonar:sonar
然后
mvn sonar:sonar --projects !moduleC
这里简单提到这个方法:
【讨论】:
我找到了另一种从分析中排除模块的方法。我们使用它,工作正常。很简单。
【讨论】:
2016.11.18 08:56:08 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Failed to execute task XXXXXX
org.sonar.api.utils.MessageException: Validation of project failed:
o Module "moduleA" is already part of project "org.company:proj2"
<properties>
<sonar.moduleKey>org.company:proj2:moduleA-NEW</sonar.moduleKey>
</properties>
【讨论】:
声纳模块名称是从maven创建的
<maven groupId>:<maven artifactId>:<branch name>
在某些情况下,不同的应用程序可能具有相同的值。
在这种情况下,声纳会感到困惑,这是正确的。
在这种情况下的解决方案是使用Matias Burni的解决方案
<properties>
<sonar.moduleKey>groupId:artifactId:some distinct identifier</sonar.moduleKey>
</properties>
但是,更正确的方法是为不同的应用程序使用不同的 groupId -artifactId 组合。
【讨论】: