2016-07-28 5 views
3

У меня есть встроенный плагин FindBugs для сбоя сборки в случае ошибок.
Затем с помощью этого brilliant answer я сконфигурировал FindBugs для генерации отчетов html (версия xml едва читаема).
Проблема заключается в том, что у меня есть свойство failOnError, установленное в true, что означает, что сборка завершится сбоем в случае ошибки.Maven выполнить цель на сбое сборки/FindBugs

..... 
<configuration> 
     ..... 
     <failOnError>true</failOnError> 
</configuration> 

И тогда не будет создан html-отчет.

Я читал около Maven build lifecycle и нет такой вещи, как «Выполнение при сбое» (например, finally блок на Java). Итак, существуют ли возможные способы обхода? И не должно ли это быть вне коробки Maven?

+0

Отчет HTML генерируется с помощью плагина, который означает, что если плагин найти ошибку он терпит неудачу. Поэтому, если вам нравится иметь плагин, генерирующий отчет html независимо от сбоя, вы должны указать проблему для плагина https://gleclaire.github.io/findbugs-maven-plugin/check-mojo.html – khmarbaise

+0

@khmarbaise Я предполагаю, что в в этом случае проще запросить генерацию отчета html вместо xml. В любом случае это звучит как долговременное решение. – Enigo

+0

Как использовать несколько прогонов плагина findbugs? На ранней стадии сборки запустите плагин для создания отчета. В более позднем запуске плагин с 'failOnError' установлен в' true'. Это замедлит сборку на данный момент, но у вас будет возможность подождать лучшего решения. – SpaceTrucker

ответ

5

Особая благодарность @SpaceTrucker для обхода suggestion. Вот конфигурация я закончил с:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>findbugs-maven-plugin</artifactId> 
    <version>3.0.4</version> 
    <configuration> 
     <effort>Max</effort> 
     <threshold>Low</threshold> 
     <findbugsXmlOutputDirectory>${project.build.directory}/findbugs</findbugsXmlOutputDirectory> 
    </configuration> 
    <executions> 
     <execution> 
      <id>noFailOnError</id> 
      <phase>verify</phase> 
      <goals> 
       <goal>check</goal> 
      </goals> 
      <configuration> 
       <failOnError>false</failOnError> 
      </configuration> 
     </execution> 
     <execution> 
      <id>failOnError</id> 
      <phase>install</phase> 
      <goals> 
       <goal>check</goal> 
      </goals> 
      <configuration> 
       <failOnError>true</failOnError> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Решение состоит в том, чтобы использовать различные конфигурации в verify и install фаз. Обратите внимание, что в соответствии с that answer трансформация (в html) выполняется в фазе verify.

выпуск submitted для генерации отчета html.

Результаты также можно увидеть, просто запустить mvn findbugs:gui

 Смежные вопросы

  • Нет связанных вопросов^_^