191 votes

Désactiver un plugin Maven définie dans un POM parent

Je suis à l'aide d'un POM parent qui définit un plugin que je ne veux pas être exécuté dans un enfant POM. Comment puis-je désactiver le plugin dans l'enfant pom complètement?

Contrainte: je ne peux pas changer le POM parent lui-même.

253voto

atc Points 1553

Les ouvrages suivants, pour moi lors de la désactivation de Findbugs dans un enfant POM:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>findbugs-maven-plugin</artifactId>
    <executions>
        <execution>
            <phase>none</phase>
        </execution>
    </executions>
</plugin>

Remarque: la définition complète de la Findbugs plugin est dans notre parent/super POM, donc ça va hériter de la version et ainsi de suite.

76voto

bmargulies Points 49855

Voir si le plugin a un "skip" paramètre de configuration. Près de tous les faire. si elle le fait, il suffit de l'ajouter à une déclaration de l'enfant:

<plugin>
   <groupId>group</groupId>
   <artifactId>artifact</artifactId>
   <configuration>
     <skip>true</skip>
   </configuration>
</plugin>

Si non, alors utilisez:

<plugin>    
<groupId>group</groupId>   
 <artifactId>artifact</artifactId>    
<executions>
     <execution>
       <id>TheNameOfTheRelevantExecution</id>
       <phase>none</phase>
     </execution>    
</executions>  
</plugin>

40voto

Le fil est vieux, mais peut-être quelqu'un s'est toujours intéressée. La forme la plus courte que j'ai trouvé est la poursuite de l'amélioration de l'atc et bmargulies exemples. L'exécution de la balise va ressembler:

<execution>
    <id>TheNameOfTheRelevantExecution</id>
    <phase/>
</execution>

2 points que je tiens à mettre en évidence:

  1. la phase est réglée à rien, ce qui semble de moins hacky que "aucun", mais encore un hack.
  2. l'id doit être la même que l'exécution que vous souhaitez remplacer. Si vous ne spécifiez pas d'id pour l'exécution de Maven va le faire de manière implicite (qui n'est pas prévu de manière intuitive par vous).

Après la publication trouvé, il est déjà dans stackoverflow: Dans un Maven multi-projet de module, comment puis-je désactiver un plugin dans un seul enfant?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X