Ответ Райана Стюарта работает, если выполнение, которое вы хотите подавить в родительском помпе, помечено id
. Однако, если родительский pom не помечает выполнение как id
(и, конечно, вы не можете редактировать этот родительский pom), тогда я обнаружил, что выполнение следующего подавляет действие родительского pom.
- Сначала установите фазу выполнения на
none
- Создайте другое исполнение, присвойте ему
id
и сделайте в нем то, что вам нужно.
- запустите
mvn help:effective-pom
, чтобы подтвердить, что он правильно подавил то, что вам нужно, подавлен из родительского пом.
Вот пример:
Вот как выглядел мой родительский пом:
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<inherited>true</inherited>
</plugin>
Мне нужно было изменить цель на jar-no-fork
. Обратите внимание, что выполнение в родительском pom не имеет id
, который я мог бы использовать, чтобы отключить его. Итак, вот что добавилось к моему детскому пому:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<phase>none</phase>
</execution>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
В результате вот как выглядит эффективный помп:
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<phase>none</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<archive>
<compress>false</compress>
</archive>
</configuration>
</execution>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
<configuration>
<archive>
<compress>false</compress>
</archive>
</configuration>
</execution>
</executions>
<inherited>true</inherited>
<configuration>
<archive>
<compress>false</compress>
</archive>
</configuration>
</plugin>
Это гарантировало, что цель jar
никогда не будет достигнута, и только цель jar-no-fork
будет выполнена - это то, чего я хотел достичь.