声纳:"模块已经是项目的一部分"或如何上传具有相同依赖项的项目?

cyn*_*axa 9 java maven sonarqube

我有两个项目(A和B),它们使用相同的可重用模块(C).我上传A到sonarqube没有问题,但是当我上传B时,声纳-maven-plugin告诉我模块C已经是项目A的一部分.我该如何修复它?我希望将我的两个项目上传到sonarqube.

Mat*_*rni 6

  • 如果您是Sonar管理员,请转到http:/// background_tasks并选择执行日志.您有以下错误:
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"
Run Code Online (Sandbox Code Playgroud)
  • 因此,您必须在项目proj1中编辑MODULE pom.xml,并将其命名为Sonar,该模块将命名为:
<properties>
    <sonar.moduleKey>org.company:proj2:moduleA-NEW</sonar.moduleKey>
</properties>
Run Code Online (Sandbox Code Playgroud)


mpd*_*bec 4

我刚刚也遇到了这个问题。如果您运行的是较新版本的 Maven,则可以排除模块。这对你来说可能是也可能不是足够的答案,但对我来说却是。

当您在项目 A 上运行 Sonar 时,正常运行它(无 --projects 开关)。当您在项目 B 上运行 Sonar 时,请提供排除列表(使用 --projects 开关)。

对于项目A:

mvn sonar:sonar
Run Code Online (Sandbox Code Playgroud)

然后

mvn sonar:sonar --projects !moduleC
Run Code Online (Sandbox Code Playgroud)

这里简单提一下这个方法:

http://docs.sonarqube.org/display/SONAR/Analyzing+with+Maven#AnalyzingwithMaven-ExclusionamodulefromSonarQubeanalysis

  • 如何禁用检入声纳? (2认同)