Повторяющиеся предупреждения checkstyle в Мэйвен Дженкинс работу многомодульный


У меня есть работа Дженкинса мэйвена с агрегатором pom и кучей подмодулей. Когда Дженкинс выводит предупреждения checkstyle, он делает это так:

  • подмодуль 1: 10 предупреждения
  • подмодуль 2: 10 предупреждения
  • Модуль агрегатора: 20 предупреждений

  • Итого: 40 warnins

Другими словами, агрегатор (по праву?) агрегирует предупреждения, найденные в подмодулях, что не было бы такой большой проблемой, если бы это не было связано с тем, что итого тогда становится вдвое больше, чем должно быть.

Кто-нибудь знает, в чем проблема? Спасибо!

2 3

2 ответа:

Это зависит от того, используете ли вы тип проекта Freestyle или тип проекта Evil Maven.

Если вы используете freestyle, вам просто нужно установить шаблон для результатов checkstyle.xml, чтобы исключить агрегатор или исключить подпроекты.

Если вы используете злого родного брата, вам может потребоваться настроить конфигурацию "для каждого модуля", чтобы отключить отчеты для дочерних модулей.

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

Вы также можете отключить агрегацию, когда задание выполняется на Дженкинсе.

Это в основном борьба между автоматическим нюханием "магии" от злого типа проекта и тем, как Maven-checkstyle-плагин реализует агрегированную отчетность.

Вы можете адаптировать некоторые трюки из здесь

Добавьте в агрегатор pom следующее:

<project>
  ...
  <profiles>
    ...
    <profile>
      <id>on-jenkins</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <inherited>false</inherited>
            <configuration>
              <skip>true</skip>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    ...
  </profiles>
  ...
</project>

И добавьте -P+on-jenkins к вашим целям Maven на работе Дженкинса.