Дублирани предупреждения за стил на проверка в многомодулна задача на jenkins maven

Имам работа на jenkins maven с aggregator pom и куп подмодули. Когато jenkins показва предупрежденията за стил на проверка, той го прави така:

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

  • Общо: 40 предупреждения

С други думи, агрегаторът (с право?) събира предупрежденията, открити в подмодулите, което не би било толкова голям проблем, ако не беше, защото общата тогава става двойно повече от това, което трябва да бъде.

Някой знае ли какъв е проблема? Благодаря!


person Miquel    schedule 17.11.2012    source източник


Отговори (2)


Това зависи от това дали използвате типа проект Freestyle или Тип проект Evil Maven.

Ако използвате свободен стил, просто трябва да зададете своя шаблон за checkstyle.xml резултати, за да изключите агрегатора или да изключите подпроектите.

Ако използвате злия брат, може да се наложи да промените конфигурацията „на модул“, за да деактивирате отчетите за дъщерните модули.

Проблемът тук е, че агрегаторният модул копира предупрежденията от дъщерните проекти, за да създаде обобщен отчет.

Можете също така да деактивирате агрегирането, когато заданието се изпълнява на Jenkins.

По същество това е битка между „магията“ на автоматичното надушване от типа зъл проект и начина, по който плъгина maven-checkstyle-имплементира обобщеното отчитане.

person Stephen Connolly    schedule 17.11.2012
comment
Благодаря! Използвам злия тип. Трябва да сте прекарали много дни в отстраняване на грешки, за да го мразите толкова много! ;) Благодаря за отговора, трябва да го измисля. Конфигурацията на модул няма опция за деактивиране на стила на проверка, така че ще трябва да преценя кое е най-добро/по-лесно... - person Miquel; 18.11.2012
comment
Типът Freestyle Project е отговорът. ;-) - person Stephen Connolly; 18.11.2012

Можете да адаптирате някои от триковете от тук

Добавете следното към 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 за работата на Дженкинс.

person Stephen Connolly    schedule 18.11.2012
comment
Благодаря много! Това обаче не помогна :/ jenkins все още прилежно проверява подмодулите, дори ако checkstyle не се изпълнява на самия pom на агрегатора. Започвам да разбирам любовта ти към freestyle проекта :) - person Miquel; 18.11.2012
comment
Многомодулният се забърква с конструкцията зад гърба ви. 90%, ако времето работи и прави това, което бихте искали. Но когато достигнете 10%, е невъзможно да коригирате или предотвратите неговата лудост... И тогава хората обвиняват Мейвън (хей, ние сме лесна мишена), когато всъщност е такъв тип проект. Един от тези дни ще напиша подходяща maven интеграция за Jenkins... KK иска да го направя, дори само за да спра да стена за неговия тип m2 проект ;-) - person Stephen Connolly; 18.11.2012
comment
Също така въпросът е, че бихте позволили на Дженкинс да направи агрегацията, другата опция е да превключите към плъгина за нарушения за стил на проверка. (забележка: Питър Райли, авторът на нарушенията, е мой приятел, така че може да съм предубеден към него) като цяло намирам приставката за нарушения за по-добър вариант - person Stephen Connolly; 18.11.2012