Ce que je veux faire, c'est forcer Maven à télécharger le "Maven-Metadata.xml" pour chaque artefact que j'ai dans mon référentiel local. p>
Le comportement maven par défaut est de télécharger uniquement des métadonnées à partir de référentiels distants (voir Actuellement, j'ai un référentiel distant exécuté dans une machine de construction. Par référentiel à distance, je veux dire un répertoire situé dans la machine de construction contenant toutes les dépendances que j'ai besoin pour construire mes projets maven. Notez que je n'utilise pas de gestionnaire de référentiel comme Nexus, le référentiel est juste une copie d'un référentiel local que j'ai téléchargé sur ma machine de construction. P>
Cependant, étant donné que mon référentiel local ne contenait pas les fichiers «Maven-métadata.xml», ces fichiers de métadonnées sont également manquants dans le référentiel de machines de construction. Si je pouvais récupérer les fichiers de métadonnées du référentiel central, il serait possible de télécharger un référentiel à distance de travail sur ma machine de construction. P>
4 Réponses :
Les référentiels par défaut sont définis dans le Super Pom .xml que tous les pompons héritent de par défaut.
Si par local, vous voulez dire que vous souhaitez utiliser uniquement ~ / .m2 / Repos / * puis travaillez en mode hors connexion. Ajouter Si par local Vous voulez dire votre serveur local em> , vous pouvez installer un gestionnaire de référentiel comme Nexus, modifier votre fichier de paramètres pour utiliser Nexus sous "miroirs" comme ceci: p> et désactiver les référentiels distants que vous ne voulez pas dans Nexus . p> p>
paramements.xml code> p>
Par local, je veux dire ~ / .m2 / repos / *, cependant, si vous utilisez l'étiquette
Je pense que vous devez avoir une construction différente et déployer des repos pour votre machine à distance. Demandez à la machine de construction utilise un repo Maven local pour la construction, puis un autre endroit sur disque pour le déploiement. Utilisez un serveur pour rendre ce 2e référentiel visible. Vous voudrez également que vos constructions locales déployées à ce 3ème repose-dessus. Les métadonnées se termineront dans cette situation.
Quoi & pourquoi
Vous ne voulez pas obtenir les métadonnées des référentiels publics, il contiendra toutes les versions disponibles d'un artefact donné, tandis que votre référentiel aura du sous-ensemble des versions. P>
Il convient de souligner que vous seriez vraiment mieux avec un gestionnaire de référentiel. Les étapes suivantes vous permettent de générer vos métadonnées artefact une fois. Mais si vos besoins changent, vous devrez répéter le processus ou mettre à jour les fichiers manuellement, alors pourquoi ne pas utiliser un gestionnaire? Nexus peut être autonome et a une très petite empreinte. P>
Même si vous ne prévoyez pas d'utiliser Nexus pour un gestionnaire de référentiel, vous pouvez toujours l'utiliser pour générer vos métadonnées. P>
Dans quelques instants, vous devriez avoir les métadonnées générées pour tous les artefacts. Vous pouvez ensuite les copier où vous avez besoin d'eux et désinstaller Nexus. P>
Je suis d'accord, il a besoin de repos partagés pour la construction et les machines locales. Il n'y a aucun moyen qu'il va garder les deux copies des métadonnées en synchronisation
La solution a fonctionné pour moi. En outre, grâce à SAL pour les conseils, mais ce dont j'ai vraiment besoin est une solution de contournement pour le problème, même si je comprends que ce n'est pas la solution idéale ...
Cela ne répond pas à la question.
La question ne concernait pas pourquoi vous devriez ou ne devriez pas télécharger les métadonnées. Il s'agit de savoir comment le faire.
Une chose que j'ai trouvée est que quelqu'un faisait une recherche initiale de Jarvana et avait placé cela dans le POM, ce qui entraîne un message d'erreur de métadonnées. Ceci ... .. corrigé et l'erreur est parti. P> p>
Le gestionnaire de référentiel est génial mais je ne veux pas installer et l'exécuter sur mon ordinateur portable. Je veux juste économiser des ressources. Donc, ma solution est ci-dessous: P>
Maintenant, j'ai un référentiel hors ligne avec du contenu complet (binaire, source, XML, MD5, SHA1) P>
Je ne suis pas clair exactement ce que vous voulez dire, ou pourquoi vous devez faire cela. Pouvez-vous expliquer ce que vous essayez d'atteindre?