Я використовую батьківський POM, який визначає плагін, який я не хочу запускати у дочірньому POM. Як я можу повністю відключити плагін у дитині?
Обмеження: я не можу сам змінити батьківський POM.
Я використовую батьківський POM, який визначає плагін, який я не хочу запускати у дочірньому POM. Як я можу повністю відключити плагін у дитині?
Обмеження: я не можу сам змінити батьківський POM.
Відповіді:
Під час відключення Findbugs у дитячій POM працює наступне:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<executions>
<execution>
<id>ID_AS_IN_PARENT</id> <!-- id is necessary sometimes -->
<phase>none</phase>
</execution>
</executions>
</plugin>
Примітка: повне визначення плагіна Findbugs знаходиться в нашому батьківському / супер POM, тому він успадкує версію та інше.
У Maven 3 вам потрібно буде використовувати:
<configuration>
<skip>true</skip>
</configuration>
для плагіна.
<id>…</id>
частину батьківського POM, тоді це працювало на мене.
<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>
Нитка стара, але, можливо, хтось все-таки цікавиться. Найкоротша форма, яку я знайшов, - це подальше вдосконалення на прикладі λlex та bmargulies. Тег виконання буде виглядати так:
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase/>
</execution>
2 бали, які я хочу виділити:
Після публікації повідомлення виявлено, що він уже знаходиться в потоковому потоці: У мультимодульному проекті Maven, як я можу відключити плагін у однієї дитини?
Я знаю, що ця тема справді стара, але рішення від Івана Бондаренка допомогло мені в моїй ситуації.
Я мав такий на мою pom.xml
.
<build>
...
<plugins>
<plugin>
<groupId>com.consol.citrus</groupId>
<artifactId>citrus-remote-maven-plugin</artifactId>
<version>${citrus.version}</version>
<executions>
<execution>
<id>generate-citrus-war</id>
<goals>
<goal>test-war</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Що я хотів, це відключити виконання generate-citrus-war
для певного профілю, і це було рішення:
<profile>
<id>it</id>
<build>
<plugins>
<plugin>
<groupId>com.consol.citrus</groupId>
<artifactId>citrus-remote-maven-plugin</artifactId>
<version>${citrus.version}</version>
<executions>
<!-- disable generating the war for this profile -->
<execution>
<id>generate-citrus-war</id>
<phase/>
</execution>
<!-- do something else -->
<execution>
...
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>