instalar - maven excluir plugin definido en pom padre
maven tutorial (4)
Puede definir todos los complementos en pom principal en la sección de administración de complementos
<pluginManagement>
<plugins>
...
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeTypes>tar.bz2</includeTypes>
<outputDirectory>${project.basedir}/target/dependencies</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
</pluginManagement>
Y luego, en poms padre e hijo, puede controlar la fase de ejecución de este complemento.
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<inherited>false</inherited>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
Si pega esto en el pom principal, no olvide la opción <inherited>false</inherited>
, deshabilite la herencia de ejecución en el pom secundario.
Tengo un padre pom con algunos complementos. En mi hijo pom, quiero excluir un plugin.
¿Cómo puedo hacer esto?
Puede usar un profile activado por una propiedad para determinar si el complemento se usa o no. De forma predeterminada, la propiedad podría activarse y el único proyecto en el que no desea utilizarla podría incluir el valor de la propiedad para excluir el complemento.
Tenía un requisito similar para ejecutar algunos complementos en el niño pero no el POM principal. Logré esto al indicar <skip>true</skip>
en el POM principal.
la entrada pom principal está debajo
<plugin>
<groupId>eviware</groupId>
<artifactId>maven-soapui-plugin</artifactId>
<version>4.0.0</version>
<inherited>false</inherited>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
</dependency>
</dependencies>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
La entrada pom del proyecto hijo está abajo.
<plugins>
<plugin>
<groupId>eviware</groupId>
<artifactId>maven-soapui-plugin</artifactId>
<version>4.0.0</version>
<configuration>
<settingsFile>site-service-web/src/test/soapui/soapui-settings.xml</settingsFile>
<projectFile>site-service-web/src/test/soapui/PodifiSite-soapui-project.xml</projectFile>
<outputFolder>site-service-web/target/surefire-reports</outputFolder>
<junitReport>true</junitReport>
<exportwAll>true</exportwAll>
<printReport>true</printReport>
</configuration>
</plugin>
</plugins>
Puede declarar todos los complementos en su pom principal dentro de <pluginManagement>
. En cada niño, puede declarar los complementos que ese niño utiliza. De esta manera, puede incluir o excluir complementos según corresponda.
Puedes ver esta discusión de SO relacionada también.