Forcer Intellij IDEA à relire toutes les dépendances Maven

297

Comment forcer intellij idea à relire / mettre à jour toutes les dépendances spécifiées dans le fichier pom?

kubek2k
la source

Réponses:

354

Appuyez sur Ctrl+ Shift+ Apour rechercher des actions et saisissez "réimporter", vous trouverez "Réimporter tous les projets Maven".

Sur un Mac, utilisez plutôt + + A.

Jacky
la source
1
Disons que j'ai 5 modules, tous basés sur maven, dans un seul projet et je le fais. Cette commande s'applique-t-elle à tous les modules, uniquement à celui sélectionné ou au premier du projet lors de son exécution?
slartibartfast
cela a-t-il changé? Je ne vois pas de réimportation le 2017.1 à Maven
Winnemucca
1
@Winnemucca Je viens de le faire sur 2017.2. En attendant qu'il se termine maintenant.
mrClean
1
J'ai dû activer le plugin Maven pour ce faire.
codefreak
1
@Winnemucca vous pouvez cliquer avec le bouton droit sur le pom, aller à Maven dans le menu déroulant et choisir Réimporter.
jones-chris
125

Ouvrez l'onglet / fenêtre "Projets Maven" et cliquez sur "Réimporter tous les projets Maven" dans le coin supérieur gauche pour recharger toutes les dépendances de leurs référentiels. La barre d'état informe sur le processus.

Qu'est-ce qui vous laisse penser que cela ne fonctionne pas correctement? Peut-être qu'aucune des dépendances ne peut être chargée à partir du référentiel?

magomi
la source
1
nous avons pris l'habitude d'utiliser une version non instantanée pour le développement en cours, et les dépendances entre projets échouent parfois.
kubek2k
1
J'ai bien peur que ce problème dépende de maven. Maven vérifie uniquement les mises à jour sur les INSTANTANÉS. Par définition, les versions non SNAPSHOT ne changeront jamais, donc maven n'a pas à rechercher de versions plus récentes que celle-ci dans le référentiel local. Une solution (assez grossière) serait de supprimer la bibliothèque du référentiel local avant d'appeler maven. Il doit ensuite recharger la bibliothèque.
magomi
9
il semble que la réimportation force toutes le drapeau -U ce que je voulais :)
kubek2k
Je faisais un clic droit sur le projet parent et faisais Maven -> Réimporter et j'espérais que cela mettrait à jour les dépendances de tous les enfants, mais ce n'est pas le cas. Merci pour la solution!
botchniaque
6
Pour trouver l'onglet / fenêtre "Projets Maven", allez dans Affichage> Fenêtres d'outils> Projets Maven
Kevin Wheeler
64

Il existe également un paramètre utile qui indique à IntelliJ de vérifier les nouvelles versions des dépendances même si les numéros de version n'ont pas changé. Nous avions un référentiel maven local et un projet d'instantané qui a été mis à jour plusieurs fois mais les numéros de version étaient les mêmes. Le problème était qu'IntelliJ / Maven n'a pas mis à jour ce projet en raison du numéro de version fixe.

Pour activer la vérification d'une dépendance modifiée bien que le numéro de version n'ait pas changé, allez dans l'onglet "Projets Maven", sélectionnez "Paramètres Maven" et activez là "Toujours mettre à jour les instantanés".

Björn Jacobs
la source
2
Ha! mises à jour automatisées dans un projet JAVA ... Je vais devoir dire que celui-ci n'est PAS toujours gagnant ... et peut même être mal vu avec Maven 3+
beauXjames
@beauXjames .. cela n'a pas fonctionné pour moi mais je suis exactement confronté au même problème. comment résoudre ce problème.
Sathesh
1
Je vais souvent dans le répertoire local repo ({user} \. M2 \ ...) et je supprime ceux que je sais associés à mon projet, puis je laisse le processus d'installation s'éteindre et je les récupère à partir de zéro afin qu'il n'y ait pas de conflits de version
beauXjames
De help: "Cochez cette case, si vous souhaitez qu'IntelliJ IDEA mette à jour les instantanés lors de la synchronisation." En d'autres termes, il n'est pas entièrement automatique - vous devez le faire Synchronize(dans le menu contextuel ou Ctrl-Alt-Y), mais l'activation de cette option le fait récupérer des SNAPSHOTversions mises à jour . AVERTISSEMENT: Il peut y avoir d'autres subtilités impliquées, comme Import Changes- cela ne semble pas être parfaitement reproductible pour moi jusqu'à présent. Peut-être que tout était dans mon imagination - ce qui semble toujours fonctionner est un plein reimportcomme suggéré dans d'autres réponses.
nobar
36

Pour IntelliJ IDEA 14.0

Projet> [nom de votre projet]> clic droit> Maven> Réimporter

teejay
la source
17

Si la réimportation ne fonctionne pas (ie ne supprime pas les anciennes versions des dépendances après une mise à jour de pom), il y a une chance de plus:

  • ouvrir les paramètres du projet (CTRL + MAJ + ALT + S)
  • sur les modules, supprimez toutes les bibliothèques que vous souhaitez réimporter (par exemple les doublons)
  • IDEA avertira que certains sont encore utilisés, confirment
  • Appliquer et sélectionner OK
  • puis réimportez tous les projets maven.
Andreas Dolk
la source
16

Le bouton le plus à gauche (cycle bleu) ci-dessous réimporte également tous les projets maven:

entrez la description de l'image ici

Umut Uzun
la source
9

exécutez cette commande mvn -U clean install

Babajide Apata
la source
3
Bien qu'il s'agisse d'une solution, elle doit être effectuée à partir de la CLI. La question est de le faire depuis IDEA.
talonx
sur l'IDE, vous pouvez exécuter un objectif maven et utiliser la commande ci-dessus sans ouvrir votre CLI ou votre terminal
Babajide Apata
2
Ce genre de défait le but d'avoir l'intégration maven dans IDEA.
talonx
1
Nous parlons de l'option -U, qui n'est pas présente dans IDEA. L'option "Réimporter" semble être la même chose, mais ce n'est pas le cas.
talonx
1
Je vois que vous faites référence à la saisie et à l'exécution d'un objectif maven, auquel cas c'est possible. Cependant, je faisais référence au fait que -U n'était pas présent dans le menu intégré à droite ("Projets Maven").
talonx
3

J'ai eu un problème où IntelliJ n'a pas pu compiler les classes, affirmant que les dépendances entre les projets étaient manquantes. La réimportation du projet comme suggéré dans les réponses à cette question n'a pas résolu le problème. La solution pour moi était:

  1. supprimer tous les projets (onglet projet / clic droit sur le dossier racine / maven / supprimer les projets);
  2. fermez l'éditeur;
  3. compiler tous les projets avec maven sur la ligne de commande;
  4. ouvrez l'éditeur sur le même projet;
  5. ajouter à nouveau les projets à maven (onglet maven / ajouter des projets maven (vert +) / choisir le pom racine);

AVERTISSEMENT: sur certains projets, vous devrez peut-être augmenter la mémoire maximale pour l'importation maven (paramètres maven sur l'onglet maven / Options d'importation / VM pour l'importateur).

Manuel Romeiro
la source
3

Paramètres> Maven> Toujours mettre à jour les instantanés

nobjta_9x_tq
la source
0

Si vous utilisez des plages de versions pour des dépendances, assurez-vous qu'IntelliJ utilise Maven 3 pour importer le projet. Vous pouvez trouver ce paramètre dans: Settings > Maven > Importing > Use Maven3 to import project. Sinon, vous pouvez constater que les versions SNAPSHOT ne sont pas importées correctement.

vegemite4me
la source