Avec maven, je frappe occasionnellement un artefact provenant d'un référentiel tiers que je n'ai pas encore construit ou inclus dans mon référentiel.
Je recevrai un message d'erreur du client maven disant qu'un artefact est introuvable:
Impossible de trouver org.jfrog.maven.annomojo: maven-plugin-anno: jar: 1.4.0 in a
http://myrepo:80/artifactory/repo
été mis en cache dans le référentiel local, la résolution ne sera pas tentée à nouveau tant que l'intervalle de mise à jour de MyRepo ne sera pas écoulé ou que les mises à jour ne seront pas forcées -> [ Aide 1]
Maintenant, je comprends ce que cela signifie, et -U
je peux simplement relancer ma commande , et les choses fonctionnent généralement bien à partir de là .
Cependant, je trouve ce message d'erreur extrêmement peu intuitif et j'essaie d'épargner à mes collègues des maux de tête.
J'essaie de comprendre s'il y a un endroit où je peux modifier ce update interval
paramètre.
- Le
update interval
paramètre mentionné dans ce message d'erreur est-il un paramètre côté client ou côté serveur? - Si côté client, comment le configurer?
- Si côté serveur, quelqu'un sait-il comment / si Nexus / Artifactory expose ces paramètres?
la source
pom.xml
.Réponses:
J'avais l'habitude de résoudre ce problème en supprimant le répertoire d'artefacts correspondant qui n'a pas pu être téléchargé dans mon référentiel local. La prochaine fois que j'exécuterai la commande maven, le téléchargement d'artefact est à nouveau déclenché. Par conséquent, je dirais que c'est un paramètre côté client.
Côté Nexus (côté repo du serveur), ce problème est résolu en configurant une tâche planifiée. Côté client, cela se fait en utilisant
-U
, comme vous l'avez déjà souligné.la source
vous pouvez supprimer le répertoire d'artefacts ayant échoué correspondant dans votre référentiel local. Et vous pouvez également simplement utiliser le
-U
dans le but. Il fera le travail. Cela fonctionne avec maven 3. Il n'est donc pas nécessaire de rétrograder vers maven 2.la source
~/.m2/settings.xml/<repositories>
pour résoudre ce problème avec les options -UJ'ai eu un problème connexe, mais la réponse de Raghuram a aidé. (Je n'ai pas encore assez de réputation pour voter sa réponse). J'utilise Maven fourni avec NetBeans et obtenais le même "... a été mis en cache dans le référentiel local, la résolution ne sera pas tentée à nouveau tant que l'intervalle de mise à jour de Nexus ne sera pas écoulé ou que les mises à jour ne seront pas forcées -> [Aide 1]" .
Pour résoudre ce problème, j'ai ajouté
<updatePolicy>always</updatePolicy>
à mon fichier de paramètres (C: \ Program Files \ NetBeans 7.0 \ java \ maven \ conf \ settings.xml)la source
Ce qui se passe essentiellement est que, selon la politique de mise à jour par défaut de maven, Maven récupère quotidiennement les pots du repo.
Résolution:
Soit utiliser
où -U forcera la mise à jour du référentiel
Ou utiliser
dans votre settings.xml
la source
Selon la référence des paramètres :
Exemple:
la source
Bien que vous puissiez résoudre ce problème avec une installation propre (en remplaçant toutes les dépendances mises en cache) comme le suggère @ Sanjeev-Gulgani avec
mvn -U clean install
Vous pouvez également simplement supprimer la dépendance mise en cache qui cause le problème avec
Voir les documents mvn pour plus d'informations.
la source
Cette erreur peut parfois être trompeuse. 2 choses à vérifier:
Existe-t-il un fichier JAR réel pour la dépendance dans le référentiel? Votre message d'erreur contient une URL de l'endroit où il recherche, alors allez-y, puis accédez au dossier qui correspond à votre dépendance. Y a-t-il un pot? Sinon, vous devez modifier votre dépendance. (par exemple, vous pourriez pointer vers une dépendance parent de niveau supérieur, alors que vous devriez pointer vers un sous-projet)
Si le bocal existe sur le référentiel distant, supprimez simplement votre copie locale. Il sera dans votre répertoire personnel (sauf si vous avez configuré différemment) sous .m2 / repository (ls -a pour montrer caché si sous Linux).
la source
Si vous utilisez Eclipse, accédez à Windows -> Préférences -> Maven et décochez la case "Ne pas mettre à jour automatiquement les dépendances des référentiels distants".
Cela fonctionne également avec Maven 3.
la source
Vous devez supprimer tous les fichiers "_maven.repositories" de votre référentiel.
la source
Cela fonctionne après avoir supprimé la dépendance associée de votre référentiel maven local
la source
Si vous utilisez Nexus comme référentiel proxy, il a le paramètre "Cache TTL non trouvé" avec la valeur par défaut 1440 minutes (ou 24 heures). Réduire cette valeur peut aider (Référentiels> Configuration> Paramètres d'expiration).
Voir la documentation pour plus d'informations.
la source
Comment j'ai eu ce problème,
Lorsque je suis passé d'Eclipse Juno à Luna et que j'ai extrait mes projets maven du repo SVN, j'ai eu les mêmes problèmes lors de la création des applications.
Qu'est-ce que j'ai essayé? J'ai essayé de nettoyer le référentiel local, puis de mettre à jour toutes les versions à nouveau en utilisant l'option -U. Mais mon problème a continué.
Ensuite, je suis allé dans Fenêtre -> Préférences -> Maven -> Paramètres utilisateur -> et j'ai cliqué sur le bouton Réindexer sous Référentiel local et attendre que la réindexation se produise.
C'est tout, le problème est résolu.
la source
Pour enfin répondre à la question du titre: C'est (un paramètre côté client) dans (projet, profil ou paramètres)
... tag.
Les valeurs possibles (actuellement maven: 3.6.0, mais je suppose qu'elles sont compatibles "loin en arrière") sont:
L'évaluation actuelle (maven 3.6.0) de cette balise est implémentée comme suit:
..avec:
... où
lastModified
est (fichier local) "l'horodatage modifié" d'un / chaque artefact sous-jacent.En particulier pour le
interval:x
cadre::
est pas stricte - tout caractère « non vide » pourrait le faire (=
,, ...).
x < 0
devraient donner «jamais».interval:0
Je suppose un intervalle "minutieux" (0-59 secondes ou plus ...).24 * 60
minutes (~ "quotidiennement")...voir: DefaultUpdatePolicyAnalyzer , DefaultMetadataResolver # resolverMetadata () et RepositoryPolicy
la source
Pour Intellij utilisateurs d' , les éléments suivants ont fonctionné pour moi:
Clic droit sur votre colis
et
la source
Un peu pertinent .. je devenais
Cette erreur a été provoquée par une utilisation accidentelle
Maven 3
au lieu deMaven 2
. Je pensais juste que cela pourrait faire gagner du temps à quelqu'un, car ma recherche initiale sur Google m'a conduit à cette page.la source
Maven a des paramètres updatePolicy pour spécifier la fréquence de vérification des mises à jour dans le référentiel ou pour garder le référentiel synchronisé avec la télécommande.
L'échantillon de code ci-dessous peut être ajouté au fichier de paramètres utilisateur maven pour configurer updatePolicy.
la source
If client-side, how do I configure it?
. Cette réponse ne concerne aucune fonctionnalité IDE. Il s'agit uniquement de la configuration du référentiel mvn. C'estupdatePolicy
l'intervalle que l'OP demande.Dans mon cas, la solution était stupide: je venais d'avoir des versions de dépendance incorrectes.
la source
J'ai eu ce problème et les descriptions complètes proposées dans ce document m'ont aidé à le résoudre.
Le deuxième problème déclaré était mon problème. J'ai utilisé un référentiel tiers auquel je venais de l'ajouter pour faire la
repository
partie du fichier pom dans mon projet. J'ajoute les mêmes informations de référentiel danspluginrepository
pour résoudre ce problème.la source
J'ai eu une erreur similaire avec un artefact différent.
Aucune des solutions décrites ci-dessus n'a fonctionné pour moi. J'ai finalement résolu cela dans IntelliJ IDEA par Fichier> Invalider les caches / redémarrer ...> Invalider et redémarrer .
la source
Dans mon cas, j'ai eu plusieurs projets
Quand j'ai fait "mvn clean install" à partir du répertoire "domainProject", j'obtenais cette erreur.
Lorsque j'ai fait "mvn clean install" à partir du répertoire "projectRoot", le problème a disparu.
la source