Quel est le meilleur endroit pour spécifier les dépôts requis pour les projets maven ? pom.xml
ou settings.xml
? Quels sont les avantages et les inconvénients de chaque emplacement ? Quelle est la meilleure pratique ?
Il me semble que définir les référentiels dans le POM est préférable pour un certain nombre de raisons :
- Reproductibilité : Les artefacts dépendants proviennent d'un emplacement connu qui est explicitement déclaré dans le POM. Il y a également moins de risques que les dépôts mal configurés d'un utilisateur causent des problèmes.
- Portabilité : Ce POM sera construit sur n'importe quelle machine avec maven installé. Il n'y a pas d'exigences supplémentaires sur les paramètres de référentiel configurés par l'utilisateur.
- Facilité d'utilisation : Il est plus facile pour les nouveaux développeurs de récupérer et de construire le projet car il y a moins de configuration à mettre en place.
L'inconvénient est peut-être que si l'emplacement du dépôt change à l'avenir, il faut installer des proxies ou publier des correctifs de l'ancien logiciel en spécifiant les nouveaux emplacements du dépôt (ou des correctifs de l'ancien logiciel). .m2/settings.xml
peut toujours fournir des référentiels supplémentaires en dernier recours). Cependant, cela semble être une ramification nécessaire d'une bonne reproductibilité et portabilité dans la gestion des versions plutôt qu'un contre.
D'autres idées ?
2 votes
Si l'emplacement du dépôt change, il suffit de mettre à jour le pom et de s'assurer que tout le monde rafraîchit sa copie locale.
0 votes
C'est vrai, mais les anciennes versions ont probablement été publiées sous forme de distribution (ex : zip, tar.gz). L'un des avantages de la reproductibilité est que vous pouvez prendre n'importe quelle distribution/version, appliquer un patch pour n'importe quelle raison et vous avez la garantie d'obtenir la distribution fonctionnelle exacte plus votre patch et rien d'autre.
1 votes
Mon opinion est exactement la même que celle de @jnorris, mais Sonatype propose quelques points à prendre en compte (peut-être dépassés ?) concernant l'élimination des URL de vos fichiers POM distribués : blog.sonatype.com/2009/02/