Sonar: "модуль уже является частью проекта" или как загружать проекты с одинаковыми зависимостями?

У меня есть два проекта (A и B), которые используют один и тот же многоразовый модуль (C). Я загружаю A в sonarqube без проблем, но когда я загружаю B, Sonar-maven-plugin говорит мне, что модуль C уже является частью проекта A. Как я могу это исправить? Я хочу, чтобы оба моих проекта были загружены в sonarqube.

4 ответов


у меня тоже была эта проблема. Если вы используете более новую версию Maven, вы можете исключить модулей. Это может быть или не быть достаточным ответом для вас, но это было для меня.

когда вы запускаете Сонар в проекте A, запустите его нормально (переключатель no --projects). При запуске сонара в проекте B введите список исключений (с параметром --projects).

Для Проекта:

mvn sonar:sonar

затем

mvn sonar:sonar --projects !moduleC

этот метод кратко упомянул здесь:

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


  • Если вы администратор сонара перейти к 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"
  • поэтому вам нужно отредактировать модуль pom.xml в вашем проекте proj1 и скажите сонару, что этот модуль будет называться как:
<properties>
    <sonar.moduleKey>org.company:proj2:moduleA-NEW</sonar.moduleKey>
</properties>

имя модуля гидролокатора создается из maven's

<maven groupId>:<maven artifactId>:<branch name>

в некоторых случаях, разные приложения могут иметь одинаковые значения для этих.

в этом случае сонар запутается, и это правильно.

решение в этом случае-использовать решение Матиаса Бурни с

<properties>
    <sonar.moduleKey>groupId:artifactId:some distinct identifier</sonar.moduleKey>
</properties>

однако более правильным способом сделать это было бы иметь различные комбинации groupId-artifactId для разных приложений.


Я нашел другой способ исключить модуль из анализа. Мы используем его, отлично работает. Все очень просто.

  1. новый проект не может быть создан автоматически из-за дублирования модуля. Поэтому создайте его вручную. Войдите в веб-интерфейс администратора. Затем используйте настройки - > Подготовка - > Создать.
  2. открыть созданный проект. Затем Конфигурация - > Настройки - > Исключения - > Файлы - > Исключения Модуля.