Estoy usando un POM principal que define un complemento que no quiero que se ejecute en un POM secundario. ¿Cómo puedo desactivar completamente el complemento en el pom niño?
Restricción: No puedo cambiar el POM padre mismo.
Estoy usando un POM principal que define un complemento que no quiero que se ejecute en un POM secundario. ¿Cómo puedo desactivar completamente el complemento en el pom niño?
Restricción: No puedo cambiar el POM padre mismo.
Respuestas:
Lo siguiente funciona para mí cuando deshabilito Findbugs en un niño POM:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<executions>
<execution>
<id>ID_AS_IN_PARENT</id> <!-- id is necessary sometimes -->
<phase>none</phase>
</execution>
</executions>
</plugin>
Nota: la definición completa del complemento Findbugs está en nuestro padre / super POM, por lo que heredará la versión y demás.
En Maven 3, deberás usar:
<configuration>
<skip>true</skip>
</configuration>
para el complemento
<id>…</id>
parte del POM principal, luego funcionó para mí.
<skip>
parámetro.
Vea si el complemento tiene un parámetro de configuración 'omitir'. Casi todos lo hacen. si es así, simplemente agréguelo a una declaración en el elemento secundario:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
Si no, entonces use:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<executions>
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
El hilo es viejo, pero tal vez alguien todavía está interesado. La forma más corta que encontré es una mejora adicional en el ejemplo de λlex y bmargulies. La etiqueta de ejecución se verá así:
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase/>
</execution>
2 puntos que quiero destacar:
Después de publicarlo, ya se encuentra en stackoverflow: en un proyecto de varios módulos de Maven, ¿cómo puedo desactivar un complemento en un niño?
Sé que este hilo es muy antiguo, pero la solución de @Ivan Bondarenko me ayudó en mi situación.
Tenía lo siguiente en mi pom.xml
.
<build>
...
<plugins>
<plugin>
<groupId>com.consol.citrus</groupId>
<artifactId>citrus-remote-maven-plugin</artifactId>
<version>${citrus.version}</version>
<executions>
<execution>
<id>generate-citrus-war</id>
<goals>
<goal>test-war</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Lo que quería era deshabilitar la ejecución de generate-citrus-war
un perfil específico y esta era la solución:
<profile>
<id>it</id>
<build>
<plugins>
<plugin>
<groupId>com.consol.citrus</groupId>
<artifactId>citrus-remote-maven-plugin</artifactId>
<version>${citrus.version}</version>
<executions>
<!-- disable generating the war for this profile -->
<execution>
<id>generate-citrus-war</id>
<phase/>
</execution>
<!-- do something else -->
<execution>
...
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>