2009-08-27 7 views
4

Je viens de trouver quelque chose qui semble bizarre avec la gestion des plugins Maven. En travaillant sur la génération du site, j'ai voulu utiliser une version spécifique du plugin du site maven afin de faire fonctionner une fonctionnalité spécifique. Disons que je veux utiliser la version 2.0.1 de ce plugin.Maven2: Comment être sûr que Maven build utilise une version de plugin spécifique?

Si j'utilise la section de déclaration de mon POM afin de générer le site de mon projet avec la commande:

mvn site 

cela fonctionne bien. Je veux dire que la version du plugin utilisée est 2.0.1 comme je le voulais. Voici un extrait de mon POM configuration du plugin site:

<reporting> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-site-plugin</artifactId> 
      <version>2.0.1</version> 
     </plugin> 
    </plugins> 
</reporting> 

Maintenant, si je veux que mon site soit généré au cours d'une phase spécifique du cycle de vie de construction, disons que la préparation-paquet (et le stade de but), je ajoutez la section suivante dans la section:

<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-site-plugin</artifactId> 

     <executions> 
      <execution> 
       <phase>prepare-package</phase> 
       <goals> 
        <goal>stage</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 

Et là, je suis coincé avec le site maven version du plugin venant du super POM, à savoir. 2.0-beta-7. Même si j'essaie d'ajouter la configuration spécifiant que je veux vraiment utiliser la version 2.0.1, elle utilise toujours la version 2.0-beta-7. J'ai également essayé d'ajouter la version dans la section parce que la config qui est utilisée dans la section de rapport est censée être appliquée à la section de construction aussi. Mais cela ne fonctionne pas non plus. Peut-être que j'ai raté quelque chose, et corrigez-moi si je me trompe, mais cela ressemble à un bug. Est-ce qu'il y a un besoin du côté de Maven pour réparer la version du plugin à utiliser pendant le processus de construction?

Merci!

Répondre

6

Si vous définissez une section de pluginManagement dans la pom, vous pouvez déclarer les versions utilisées pour les plug-ins, ceci surpassera les versions héritées du super-POM

Par exemple:

<pluginManagement> 
    <plugins> 
    <plugin> 
     <artifactId>maven-site-plugin</artifactId> 
     <version>2.0.1</version> 
    </plugin>  
    </plugins> 
</pluginManagement> 

Vous pouvez reportez-vous au documentation pour plus d'informations sur la configuration de pluginManagement.

+0

Merci beaucoup pour cette réponse rapide. Ceci remplace la valeur par défaut provenant du Super Pom. – reef

Questions connexes