web-dev-qa-db-fra.com

Nexus/Maven - Le POM pour ... est manquant, aucune information de dépendance disponible

Je suis confronté à plusieurs avertissements tels que "Le fichier POM pour ... est manquant, aucune information de dépendance disponible" lors de la construction de mon projet Java maven. 

Les artefacts sont stockés sur le serveur Nexus hébergé dans notre société. Le problème a commencé après que j'ai planifié une tâche dans Nexus pour "Supprimer les versions du référentiel" afin de la nettoyer et de ne gérer que les 2 dernières versions.

À cause de cela, je reçois ces avertissements pour les anciennes versions supprimées:

[WARNING] The POM for xpto:jar:jar:8.16.1 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.17.0 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.18.0 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.19.0 is missing, no dependency information available

Une fois que j'ai plusieurs projets de composants et que les versions sont des constantes, lors de la compilation d'un projet utilisant ces composants, je reçois de nombreux avertissements de ce type.

Est-ce que vous proposez un moyen d'éviter ces avertissements ou d'exécuter un objectif côté client qui pourrait re-résoudre ou réindexer les dépendances?

Cordialement,

7
Danilo Muñoz

Parfois, les rejets sont jetables

Comme le décrit l'article ci-dessus, selon votre entreprise, il se peut que vous n'ayez pas besoin de stocker les anciennes versions sur votre propre référentiel. Je suis inclus dans ce scénario.

Afin de ne conserver, par exemple, que les 2 dernières versions de mes projets de composants, certaines étapes doivent être suivies afin d'éviter les messages maven [WARNING]:

1. Supprimer les communiqués du référentiel

Vous devez ajouter une tâche à votre référentiel pour conserver la seule version n. Cela peut être fait par:

  • Sélectionnez Sonatype Nexus> Administration> Tâches planifiées> Ajouter.
  • Définissez "Type de tâche" sur "Supprimer les versions du référentiel"
  • Configurez vos propres paramètres (courrier électronique, récurrence, etc.)

2. Reconstruire les fichiers de métadonnées Maven

Le meilleur atout de cette question est de reconstruire les fichiers de métadonnées Maven (maven-metadata.xml), une fois que les informations sur les anciennes versions seront conservées jusqu'au moment où elles seront reconstruites. Cela peut être fait par:

  • Sélectionnez Sonatype Nexus> Administration> Tâches planifiées> Ajouter.
  • Définissez "Type de tâche" sur "Reconstruire les fichiers de métadonnées Maven"
  • Configurez vos propres paramètres (courrier électronique, récurrence, etc.)
  • Attention: cette tâche doit être exécutée après "Supprimer les versions du référentiel".

3. Dépôt local

Maintenant, le référentiel local doit savoir que les fichiers de métadonnées ont été mis à jour. Cela peut être fait par le paramètre:

  • mvn -U:

    -U, - update-snapshots Force une vérification de la mise à jour communiqués et instantanés à distance

  • Par exemple: 

    paquet propre de mvn -U

Références

5
Danilo Muñoz

Vérifiez votre settings.xml, c’est-à-dire exporté en tant que tel dans bash:

export MVN_SETTINGS=~/.m2/settings.xml 

Cet avertissement apparaît généralement lorsque vous ne pouvez pas télécharger les dépendances depuis Internet.

2
B. Carpenter