Можно ли переопределить выполнение в 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> в подпроектах, например, только запустить 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

Другие вопросы по тегам