2012-02-01 3 views
1

Parent sous-modules:désactiver BuildNumber-maven-plugin pour

<plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>buildnumber-maven-plugin</artifactId> 
      <version>1.0</version> 
      <executions> 
       <execution> 
        **<inherited>false</inherited>** 
        <goals> 
         <goal>create</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <format>${project.version}-b{0,number}</format> 
       <items> 
        <item>buildNumber0</item> 
       </items> 
       <doCheck>false</doCheck> 
       <doUpdate>false</doUpdate> 
      </configuration> 
     </plugin> 
    </plugins> 

<modules> 
    <module>module1</module> 
    <module>module2</module> 
</modules> 

Au cours 'mvn BuildNumber: créer' chaque module BuildNumber générer. Est-il possible de l'éteindre pour les sous-modules? En d'autres termes, pendant le numéro de build «mvn buildnumber: create», il ne doit être généré qu'une seule fois dans le module parent.

J'ai essayé de définir <phase>none</phase> et <skip>true</skip> dans des sous-modules, mais sans aucun changement.

Suggestions?

+0

Pour votre projet multi-module, l'utilisez-vous pour éventuellement créer un artefact unique (comme une guerre ou une oreille)? Si c'est le cas, vous pouvez simplement utiliser le plugin buildnumber pour ce seul module au lieu de la racine. – Michael

+0

@Michael Je pourrais, mais de toute façon buildnumber plugin s'exécute pour tous les modules. Ce que j'ai mal fait? – Alex

+0

vous n'avez rien fait de mal. Vous avez spécifié une directive de construction dans votre pom racine, qui dans un pom multi-module descend vers le bas. Vos modules enfants utilisent votre parent pom comme parent, ce qui signifie qu'ils font tout ce qu'il y a dedans. Donc, votre code fait exactement ce que vous lui avez demandé. – Michael

Répondre

1

je prendrais un coup d'oeil dans le:

<pluginManagement>...</pluginManagement> 

élément: http://maven.apache.org/pom.html#Plugin_Management

J'ai eu le succès de définir mes plugins dans mon maître/parent/root fichier pom dans la section plugin-gestion, puis en activant simplement leur comportement dans mes fichiers pom enfant en spécifiant simplement la combinaison groupe/artefact.

Dans votre cas, je vais essayer ce qui suit ...

Dans votre pom.xml racine (notez le < pluginManagement élément >):

... 
<build> 
    ... 
    <pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>buildnumber-maven-plugin</artifactId> 
     <version>1.0</version> 
     <executions> 
      <execution> 
       <goals> 
        <goal>create</goal> 
       </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <format>${project.version}-b{0,number}</format> 
      <items> 
       <item>buildNumber0</item> 
      </items> 
      <doCheck>false</doCheck> 
      <doUpdate>false</doUpdate> 
     </configuration> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
... 
</build> 
... 

Et puis activez simplement le comportement votre module1 (ou module2) pom.xml par (NO < pluginManagement élément >):

<build> 
    ... 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>buildnumber-maven-plugin</artifactId> 
    <plugin> 
    <plugins> 
    ... 
</build> 
... 

Ce fut un De mémoire, donnez-moi un coup de feu et si cela ne fonctionne pas, faites le moi savoir.

0

Mettez à jour votre pom utiliser la version 1.3 du plug-in, puis configurez le plug-in dans chaque sous-module avec vrai

+0

il a été demandé il y a plus de 2 ans mais de toute façon merci pour votre aide! – Alex

1

Ce: Execute Maven plugin goal on parent module, but not on children

Vous pouvez ajouter <inherited>false</inherited> à la configuration du plug-in pour éviter l'héritage chez les enfants POMs :

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>buildnumber-maven-plugin</artifactId> 
    <version>1.0</version> 
    <inherited>false</inherited> 
    ... 
    </plugin> 
Questions connexes