Можно ли переопределить выполнение в 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>

мои вопросы:

  1. можно ли отключить некоторые <execution> в подпроектах, e.g, только run execution 3 и пропустить 1 и 2?
  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#Activation