Quel est l'ordre de remplacement des propriétés Maven dans pom.xml et settings.xml?
aujourd'hui, j'ai observé que le maven proprties défini dans settings.xml
remplacer l'un dans pom.xml
.
Parce qu'il n'est qu'une observation, je ne suis pas sûr si cela est tout à fait correcte. Je suis donc cherché la référence ou de certains d'article mais je ne trouve pas de déclaration de béton sur le comportement de l'écrasement des propriétés définies avec le même nom dans settings.xml
et pom.xml
.
Peut-être que quelqu'un peut fournir un lien vers la pièce de référence (que j'ai peut négligée) ou l'un fiable de l'article/blog?
source d'informationauteur Ralph | 2012-04-30
Vous devez vous connecter pour publier un commentaire.
Basé sur la la documentation à mon avis, il est clair qui a préséance sur l'autre (extrait de la doc):
L'profiles.xml n'existe plus dans Maven 3 seulement dans Maven 2.2.1 il est pris en charge, mais ne doit pas être utilisé.
Je pense que les propriétés de l'égalité avec les noms sont remplacés dans la séquence suivante (du plus élevé au plus faible):
http://maven.apache.org/guides/introduction/introduction-to-profiles.html
Donc,
pom.xml
propriétés (par projet), sont remplacées parsettings.xml
(par utilisateur) propriétés avec un nom.Viens de tester sur mon maven 3.3.9.
Tout d'abord, les propriétés sont toujours définies dans les profils, si nous parlons de la settings.xml.
Propriétés de paramètres globaux XML ont la priorité la plus élevée et remplace à la fois l'utilisateur
settings.xml
et unepom.xml
, SAUF il y a un nom de collision entre les profils.Si c'est le cas, c'est qu'il existe une profil avec le même id mondiale, les paramètres de l'utilisateur, ainsi que pom.xml utilisateur/local settings.xml est le patron.
Même si une propriété dans
pom.xml
ne pas s'asseoir à l'intérieur d'un profil, l'utilisateur/localsettings.xml
propriété à partir d'un profil actif avec le même nom de le battre.D'ailleurs, global
settings.xml
va aussi battre pom.xml propriété sans profil.Comme une note de côté:
Pour
<repositories>
et<mirrors>
la logique est un peu différente:<mirrors>
.<repositories>
: pom - plus, puis - local, puis - global.