Sto usando un POM padre che definisce un plugin che non voglio essere eseguito in un POM figlio. Come posso disabilitare completamente il plugin nel figlio pom?
Vincolo: non posso cambiare il POM genitore stesso.
Sto usando un POM padre che definisce un plugin che non voglio essere eseguito in un POM figlio. Come posso disabilitare completamente il plugin nel figlio pom?
Vincolo: non posso cambiare il POM genitore stesso.
Risposte:
Quanto segue funziona per me quando disabilito Findbugs in un POM figlio:
<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 definizione completa del plug-in Findbugs è nel nostro genitore / super POM, quindi erediterà la versione e così via.
In Maven 3, dovrai utilizzare:
<configuration>
<skip>true</skip>
</configuration>
per il plugin.
<id>…</id>parte del genitore POM, quindi ha funzionato per me.
<skip>parametro.
Verifica se il plugin ha un parametro di configurazione 'skip'. Quasi tutti lo fanno. in caso affermativo, aggiungilo a una dichiarazione nel figlio:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
In caso contrario, utilizzare:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<executions>
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
Il thread è vecchio, ma forse qualcuno è ancora interessato. La forma più breve che ho trovato è un ulteriore miglioramento dell'esempio di λlex e bmargulies. Il tag di esecuzione sarà simile a:
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase/>
</execution>
2 punti che voglio evidenziare:
Dopo che la pubblicazione è stata trovata, è già in StackOverflow: in un progetto multi-modulo Maven, come posso disabilitare un plugin in un bambino?
So che questa discussione è davvero vecchia ma la soluzione di @Ivan Bondarenko mi ha aiutato nella mia situazione.
Ho avuto il seguente nel mio 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>
Quello che volevo era disabilitare l'esecuzione di generate-citrus-warun profilo specifico e questa era la soluzione:
<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>