Mon équipe utilise un référentiel maven d'équipe interne qui est partagé à partir d'un serveur de développement utilisant Apache. Nous exécutons également le serveur Continuum CI sur la même machine. Les builds de Maven dans Continuum sont exécutés avec l'objectif «installer», qui copie l'artefact final directement dans le répertoire partagé.
La question est: quelle est la différence entre l'ajout de fichiers au mvn install
référentiel partagé à l'aide et l'utilisation de l'objectif de déploiement (plugin mvn-deploy)?
Il me semble que l'utilisation mvn deploy
crée des problèmes de configuration supplémentaires, mais j'ai lu quelque part que l'installation de fichiers dans un référentiel partagé est une mauvaise idée pour une raison liée au fonctionnement interne de maven.
mise à jour: j'obtiens les différences fonctionnelles entre deploy
et install
; Je suis en fait plus intéressé par les détails de bas niveau en termes de quels fichiers sont créés dans le repo maven.
mvn deploy
? Quels avantages cela apporte-t-il pour la configuration supplémentaire requise au départ?D'après les documents Maven , il semble que ce ne soit qu'une différence dans le référentiel dans lequel vous installez le package:
Peut-être qu'il y a une certaine confusion dans le fait que "installer" sur le serveur CI l'installe dans son référentiel local, que vous partagez alors en tant qu'utilisateur?
la source
"matt b" a raison, mais pour être précis, l'objectif "installer" copie votre cible construite dans le référentiel local de votre système de fichiers; utile pour les petits changements dans les projets qui ne sont actuellement pas destinés à l'ensemble du groupe.
L'objectif «déployer» le télécharge dans votre référentiel partagé lorsque votre travail est terminé, puis peut être partagé par d'autres personnes qui en ont besoin pour leur projet.
Dans votre cas, il semble que « install » est utilisé pour rendre la gestion du déploiement plus facile depuis repo local de CI est la prise en pension partagée. Si CI était sur une autre boîte, il devrait utiliser l'objectif «déployer».
la source