web-dev-qa-db-fra.com

M2E: La version est un doublon de la version parente - Pourquoi s'agit-il d'un avertissement?

J'ai plusieurs projets Maven qui ont chacun des fonctionnalités communes ou au moins des configurations/dépendances communes. J'ai extrait ceci dans un pom.xml commun, puis modularisé plusieurs facettes, par exemple la persistance, les dépendances liées à Spring, etc. - le tout dans leurs propres modules qui héritent de ce POM parent.

En ce moment, "Common" est la version 1.0.0 et j'ai "ProjectA" dont je souhaite hériter. Je reçois l'avertissement:

La version est un doublon de la version parente

Je ne comprends pas bien pourquoi c'est un avertissement. Je pensais que j'avais la possibilité d'omettre la version de mon projet POM afin d'hériter de la version. (Je le fais pour les modules communs - par exemple, common-spring ajoute des dépendances communes supplémentaires pour les applications Spring, et en fait, ProjectA hérite en fait de common-spring.)

N'est-ce pas juste cela - une option? Si je change ma version ProjectA en 1.0.1 ou 2.0.0, tout va bien.

47
Doug Moscrop

C'est juste m2e qui essaie d'être intelligent parce que l'élément de version (comme l'ID de groupe) peut parfois être redondant et peut être hérité du POM parent, il serait donc sûr de supprimer cet élément de votre POM enfant.

Mais parfois, ce ne sont pas des informations redondantes, comme lorsque le projet parent et enfant ont des cycles de vie différents, et m2e devrait permettre de désactiver cet avertissement. Malheureusement, il n'y a pas encore moyen de le faire: http://dev.Eclipse.org/mhonarc/lists/m2e-users/msg01961.html

MISE À JOUR: Comme Duncan le dit ci-dessous, dans les versions plus récentes, vous pouvez désactiver cet avertissement.

54
Fabricio Lemos

Les versions plus récentes de m2e (depuis 1.1) vous permettent désormais de désactiver cet avertissement.

Préférences> Maven> Warnings> Disable "Version is duplicate of parent version" warning

Rapport de bogue d'origine: https://bugs.Eclipse.org/bugs/show_bug.cgi?id=356796

55
Duncan Jones

Si cela vous ennuie vraiment, utilisez une propriété pour supprimer l'avertissement avec un tour de main rusé:

<version>${api.version}</version>
<properties>
    <api.version>0.0.1-SNAPSHOT</api.version>
</properties>

mais tout ce que vous allez vraiment faire, c'est déplacer l'avertissement vers la sortie de la console:

[WARNING] Some problems were encountered while building the effective model for [project]
[WARNING] 'version' contains an expression but should be a constant.
2
DJDaveMark