Отключить плагин Maven, определенный в родительском POM

Я использую родительский POM, который определяет плагин, который я не хочу запускать в дочернем POM. Как я могу полностью отключить плагин в дочерней помпе?

Ограничение: я не могу изменить родительский POM.

Ответ 1

Следующие действия для меня при отключении Findbugs в дочернем POM:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>findbugs-maven-plugin</artifactId>
    <executions>
        <execution>
            <phase>none</phase>
        </execution>
    </executions>
</plugin>

Примечание: полное определение плагина Findbugs находится в нашем родительском/суперподом, поэтому он наследует версию и так далее.

В Maven 3 вам нужно будет использовать:

 <configuration>
      <skip>true</skip>
 </configuration>

для плагина.

Ответ 2

Посмотрите, имеет ли плагин параметр конфигурации "skip". Почти все делают. если это так, просто добавьте его в объявление в дочернем элементе:

<plugin>
   <groupId>group</groupId>
   <artifactId>artifact</artifactId>
   <configuration>
     <skip>true</skip>
   </configuration>
</plugin>

Если нет, используйте:

<plugin>    
<groupId>group</groupId>   
 <artifactId>artifact</artifactId>    
<executions>
     <execution>
       <id>TheNameOfTheRelevantExecution</id>
       <phase>none</phase>
     </execution>    
</executions>  
</plugin>

Ответ 3

Тема старая, но, возможно, кому-то все еще интересно. Самая короткая форма, которую я нашел, является дальнейшим улучшением на примере из λlex и bmargulies. Тег выполнения будет выглядеть так:

<execution>
    <id>TheNameOfTheRelevantExecution</id>
    <phase/>
</execution>

2 пункта Я хочу выделить:

  • Фаза
  • не имеет ничего, что выглядит менее взломанным, чем "нет", хотя все еще взломан.
  • id должен быть таким же, как исполнение, которое вы хотите переопределить. Если вы не укажете id для выполнения, Maven сделает это неявно (таким образом, который вас не ожидает интуитивно).

После публикации найденного он уже находится в stackoverflow: В мультимодульном проекте Maven, как отключить плагин у одного ребенка?