Можно ли переопределить выполнение в maven pluginManagement?
В родительском ПОМ у меня есть:
<pluginManagement>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>execution 1</id>
...
</execution>
<execution>
<id>execution 2</id>
...
</execution>
<execution>
<id>execution 3</id>
...
</execution>
</executions>
</plugin>
<pluginManagement>
Мои вопросы:
- Можно ли отключить некоторые
<execution>
в подпроектах, например, только запуститьexecution 3
а пропустить 1 и 2? - Можно ли полностью переопределить выполнение в подпроектах, например, у меня есть
exection 4
в моих подпроектах, и я хочу только запустить этоexecution
и никогда не запускайте выполнение 1,2,3 в родительском POM.
1 ответ
Решение
Быстрый вариант - использовать <phase>none</phase>
при переопределении каждого исполнения. Так, например, чтобы запустить только выполнение 3, вы должны сделать следующее в pom:
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>execution 1</id>
<phase>none</phase>
...
</execution>
<execution>
<id>execution 2</id>
<phase>none</phase>
...
</execution>
<execution>
<id>execution 3</id>
...
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
Следует отметить, что эта функция не является официально задокументированной, поэтому ее поддержка может быть удалена в любое время.
Рекомендуемое решение, вероятно, будет определять profiles
который имеет activation
разделы определены:
<profile>
<id>execution3</id>
<activation>
<property>
<name>maven.resources.plugin.execution3</name>
<value>true</value>
</property>
</activation>
...
В вашем подпроекте вы просто установите необходимые свойства:
<properties>
<maven.resources.plugin.execution3>true</maven.resources.plugin.execution3>
</properties>
Более подробную информацию об активации профиля можно найти здесь: http://maven.apache.org/settings.html