Question

(également affiché sur maven-utilisateurs)

Vous vous demandez si quelqu'un peut faire la lumière sur l'héritage des éléments en pom.xml que concerne le traitement des ressources et le plug-in WAR.

La documentation de la pom [1] a des ressources inscrites sous la rubrique « Éléments du POM qui sont fusionnés ». Quelques essais sur mes poms locales contre 2.2.1 Maven ne semblent pas présenter ce comportement. Ce que je vois est-il ressemble est héritée par des projets d'enfants (dans une version multi-module), mais que si l'un de ces projets ont leur propre bloc, il remplace le parent, pas fusionné. Est-ce exact?

Exemple:

parent-pom.xml
|
|-> child-pom.xml

Les travaux suivants je pense, avec les fichiers dev non inclus dans une guerre finale.

parent-pom.xml

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <excludes>
            <exclude>${dev-config.path}</exclude>
        </excludes>
    </resource>
</resources>

enfant pom.xml

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <excludes>
            <exclude>${dev-config.path}</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>src/main/rules</directory>
    </resource>
    <resource>
        <directory>src/test/rules</directory>
    </resource>
</resources>

Le changement suivant à l'enfant (supprimant toute déclaration pour src / main / ressources) semble résulter dans src / main / ressources ne sont pas pris en compte lors processus-ressources, non héritant de la société mère comme je l'avais prévu.

enfant pom.xml

<resources>
    <resource>
        <directory>src/main/rules</directory>
    </resource>
    <resource>
        <directory>src/test/rules</directory>
    </resource>
</resources>

[1] http: //maven.apache. org / guides / mise en place / mise en place à la pom.html s

Était-ce utile?

La solution

En effet, c'est ce que les dit documentations. Mais je confirme que l'héritage Maven l'emporte sur les ressources au lieu d'ajouter à leur disposition. Ceci est en fait capturé dans MNG-2751 et indirectement MNG-2027 , que vous pouvez cogner.

TBH, je suis très curieux de voir ce que les gens de Maven dire sur ce (je suis personnellement satisfait du comportement actuel, je ne veux pas vraiment poms enfant d'être « pollué » par des besoins spécifiques, comme les exclusions , dans une hiérarchie) et la modification de ce comportement risque de casser beaucoup de projets.

Autres conseils

Comme indiqué dans ajoutant des ressources supplémentaires à un pom maven, cela peut être contourné en utilisant le build-aide du plugin.

scroll top