maven-2 - borrar - actualizar dependencias maven eclipse
Desactivar un plugin Maven definido en un POM padre (4)
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:
- la fase está configurada en nada, lo que parece menos hacky que ''ninguno'', aunque sigue siendo un truco.
- La identificación debe ser la misma que la ejecución que desea anular. Si no especifica la id para la ejecución, Maven lo hará implícitamente (de una manera que usted no espera intuitivamente).
Después de publicar found, ya está en stackoverflow: en un proyecto de varios módulos Maven, ¿cómo puedo desactivar un complemento en un elemento secundario?
Estoy usando un POM padre que define un complemento que no quiero que se ejecute en un POM hijo. ¿Cómo puedo desactivar el complemento en el pom hijo por completo?
Restricción: No puedo cambiar el POM padre en sí mismo.
Lo siguiente funciona para mí al deshabilitar Findbugs en un POM hijo:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<executions>
<execution>
<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 así sucesivamente.
En Maven 3, necesitarás usar:
<configuration>
<skip>true</skip>
</configuration>
para el complemento.
Sé que este hilo es muy viejo, pero la solución de @Ivan Bondarenko me ayudó en mi situación.
Tuve 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
para 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>
Vea si el plugin tiene un parámetro de configuración ''skip''. Casi todos lo hacen. si lo hace, simplemente agréguelo a una declaración en el niño:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
Si no, entonces usa:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<executions>
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase>none</phase>
</execution>
</executions>
</plugin>