Importer les dépendances Maven dans IntelliJ IDEA


208

J'ai une petite question sur IntelliJ IDEA 11. Je viens d'importer un projet de subversion - c'est un projet maven. Mais j'ai un problème dans les dépendances de la bibliothèque maven, de sorte que je ne peux pas inclure toutes les dépendances maven automatiquement - IDEA affiche des erreurs de dépendance uniquement lorsque j'ouvre cette classe / C'est ce que j'obtiens ici:

entrez la description de l'image ici

Je veux donc que toutes les dépendances soient ajoutées automatiquement - est-ce possible ou dois-je parcourir tous les fichiers de classe pour identifier et ajouter des dépendances maven?!

MISE À JOUR: Après avoir fait quelques modifications, j'ai trouvé comment résoudre mon problème d'une manière ou d'une autre. C'est ce que j'ai fait: entrez la description de l'image ici

mais je pense que logiquement, il n'inclura pas et ne vérifiera pas les nouvelles dépendances à l'avance?! ... Y a-t-il une zone de paramètres pour cela dans intelliJ - dépendances d'exportation automatique vers classpath?!


9
Il télécharge toutes les dépendances mais il ne semble pas les ajouter toutes à classpath ...
Zaur Guliyev

3
et un autre problème est qu'intelliJ ne me montre des erreurs soulignées en rouge que lorsque j'ouvre ce fichier java ...
Zaur Guliyev

4
Une instance où vous obtenez cette ligne rouge est si vous avez une dépendance SNAPSHOT avec un classificateur, où une version plus récente de la dépendance sans le classificateur existe. C'est parfaitement légal dans Maven, mais IntelliJ est confus en essayant de trouver le chemin d'accès au fichier physique dans votre référentiel Maven local.
RCross

4
Pour info, cela peut toujours se produire dans la version 15.0.2. Je viens de m'arriver. J'ai dû emporter mon fichier .iml et mon dossier .idea et réimporter. Incroyablement frustrant car j'ai passé 2 heures à le combattre, et j'ai finalement perdu toutes mes configurations de course soigneusement conçues.
Kevin Pauli

3
@KevinPauli pas besoin de supprimer les fichiers de projet IDEA pour cela, vous pouvez simplement "Réimporter tous les projets Maven" sous l'onglet "Projets Maven" pour une réimportation manuelle.
Zaur Guliyev

Réponses:


282

IntelliJ doit télécharger et ajouter automatiquement toutes vos dépendances au chemin de classe du projet tant que votre POM est conforme et que toutes les dépendances sont disponibles.

Lors de l'importation de projets Maven dans IntelliJ, une boîte d'informations apparaît généralement vous demandant si vous souhaitez configurer l' importation automatique pour les projets Maven. Cela signifie que si vous apportez des modifications à votre POM, ces modifications seront chargées automatiquement.

Vous pouvez activer une telle fonctionnalité en allant dans Fichier> Paramètres> Maven> Importation, il y a une case à cocher qui dit "Importer automatiquement les projets Maven".

Si cela n'aide pas, je suggère de faire un nettoyage complet et de recommencer:

  • Fermez la fenêtre de votre projet (et IntelliJ) et supprimez tous les *.imlfichiers et tous les .ideadossiers (il devrait y en avoir un par module)
  • Exécuter à mvn clean installpartir de la ligne de commande
  • Réimportez le projet dans IntelliJ et faites attention lorsqu'il vous demande d'activer l'importation automatique

Mise à jour IntelliJ 2016 :

Le paramètre Importer automatiquement les projets Maven a été déplacé vers Build, Execution, Deployment> Build Tools> Maven> Importing dans vos préférences IntelliJ.


donc votre solution était de marquer les dépendances comme exportées? c'est bizarre! J'utilise beaucoup IntelliJ et Maven et aucun de mes projets (certains d'entre eux sont multi-projets) n'a la fonction d'exportation activée ... est-ce Community Edition ou Ultimate?
Alonso Dominguez

1
C'est une édition ultime mais le projet que j'ai importé a été construit sur Eclipse - de sorte que .classpath y était activé mais IntelliJ utilise .iml - Je pense donc qu'il est logique d'inclure ces bibliothèques pour la première fois si ce projet n'avait pas .iml déposer avant ..?!
Zaur Guliyev

1
oh, ok - avez-vous essayé de l'importer en tant que projet Maven plutôt que Eclipse? J'ai l'habitude de ne pas archiver les fichiers liés à l'IDE dans mes référentiels sources lorsque je travaille avec des projets Maven: si c'est un projet Maven, alors les règles Maven
Alonso Dominguez

2
Vous pouvez activer l'importation automatique dans les préférences / paramètres. Ouvrez les préférences / paramètres et recherchez «Importer automatiquement les projets Maven». c'est sous Build, Execution, Deployment> Build Tools> Maven> Importing
Seyed Jalal Hosseini

2
@JustinBlank n'est pas surpris par cela, étant donné qu'il s'agit d'une réponse de 2012. Les paramètres sont toujours là, ils ont juste été déplacés ailleurs (la réponse a été mise à jour).
Alonso Dominguez

66

Correction avant IntelliJ 14

Fichier [menu] -> Paramètres -> maven -> importation et décochez "utiliser maven3 pour importer le projet"

ref: http://youtrack.jetbrains.com/issue/IDEA-98425 (qui peut aussi avoir quelques autres idées)

Réparer IntelliJ 15+

Ran dedans à nouveau, avec IntelliJ 15 cette fois, qui n'a plus d'option "utiliser maven3 pour importer" disponible. La cause en était que parfois IntelliJ "n'analyse pas correctement les dépendances maven" et s'il ne peut pas analyser correctement l'une d'entre elles, elle abandonne toutes , apparemment. Vous pouvez savoir si c'est le cas en ouvrant la fenêtre d'outils des projets maven (menu Affichage -> Fenêtres d'outils -> Projets Maven). Développez ensuite l'un de vos projets maven et ses dépendances. Si les dépendances sont toutes soulignées en rouge, "Houston, nous avons un problème". entrez la description de l'image ici

Vous pouvez réellement voir l' échec réel en passant la souris sur le nom du projet lui-même.

entrez la description de l'image ici

Dans mon cas, il a dit "Problèmes: Aucune version disponible pour XXX" ou "Impossible de lire le descripteur pour l'artefact org.xy.z" ref: https://youtrack.jetbrains.com/issue/IDEA-128846 et https: // youtrack.jetbrains.com/issue/IDEA-152555

Il semble que dans ce cas, je faisais affaire avec un pot qui n'avait pas de fichier pom associé (dans notre référentiel maven nexus, et aussi dans mon référentiel local). Si c'est aussi votre problème, "urrent work around: si vous n'avez pas réellement besoin d'utiliser des classes de ce pot dans votre propre code (par exemple une dépendance transitive maven uniquement), vous pouvez réellement vous en sortir en le commentant depuis le pom (temporairement), rechargement du projet maven, puis décommentez-le. D'une manière ou d'une autre, IntelliJ "se souvient" de ses anciennes dépendances de travail. L'ajout temporaire d'une exclusion transitive maven peut également le faire, si vous l'utilisez à partir d'une chaîne de dépendances transitive. "

Une autre chose qui pourrait aider est d'utiliser une "version plus récente" de maven que la version 3.0.5 fournie. Afin de le configurer pour l'utiliser comme valeur par défaut, fermez toutes vos fenêtres intellij, puis ouvrez les préférences -> génération, exécution et déploiement -> outils de génération -> maven, et changez le répertoire de base de maven, il devrait dire "For default projet "en haut lorsque vous ajustez cela, bien que vous puissiez également l'ajuster pour un projet particulier, tant que vous" réimportez "après l'avoir ajusté.

Vider les caches

Suppression de vos dossiers de cache intellij (fenêtres: HOMEPATH /. {IntellijIdea, IdeaC} XXX linux ~ / .IdeaIC15) et / ou désinstallation et réinstallation d'IntelliJ lui-même. Cela peut également être fait en allant dans Fichier [menu] -> Invalidate Caches / Restart.... Cliquez invalidate and restart. Cela va réindexer l'ensemble de votre projet et résoudre de nombreux problèmes difficiles à tracer avec IntelliJ.


2
Curieusement, presque tous les autres messages conseillent de vérifier l'option «Utiliser Maven3 pour importer un projet» pour résoudre ce problème tout en décochant, cela a résolu le problème pour moi. Pourquoi? Je ne sais pas. Merci!
janhink

3
Dans la v14 ultime, j'ai choisi un maven externe et tout s'est remis à fonctionner.
AlikElzin-kilaka du

@ AlikElzin-kilaka Changer le répertoire de base de maven en home de maven externe aide beaucoup. Après avoir mis à jour IDEA vers la version 14 ultime, je n'ai pas pu lancer mon projet dans IDEA en raison du «Aucun plugin tomcat6 trouvé», mais je peux lancer le projet à l'aide de la commande mvn et changer le répertoire de départ de
maven en

Dans IntelliJ 2016.2.1, la désactivation de l'importation automatique en changeant la Maven home directoryversion que notre pile utilise (3.3.9) a résolu le problème pour moi.
Wheeler

1
Changer le maven home directoryde Bundle (Maven 3)vers le chemin où mon maven est installé a .../maven/3.6.1/libexecfonctionné pour moi
Marcelo Xavier

37

Lors de l'importation du projet, sélectionnez à la pom.xmlplace du répertoire du projet. Ça devrait marcher.


1
cliquez parfois sur l'option "Réimporter tous les projets maven" dans la fenêtre Projets Maven
vikramvi

1
C'est peut-être la solution la plus élégante et la plus propre (et c'est un peu maladroit pour Intellij de ne pas le deviner)
matanster

Travailler pour moi aussi, avec IntelliJ Community Edition 2019.3.4. Merci pour une solution aussi simple. :)
asymétrieFan

22

Essayez de réimporter le projet à partir du panneau Projets Maven dans IntelliJ IDEA. Il devrait télécharger et configurer pom.xmlautomatiquement toutes les dépendances définies dans votre .

Si le téléchargement ne fonctionne pas depuis IDEA pour une raison quelconque, essayez à mvn installpartir de la ligne de commande et voyez si les dépendances peuvent être récupérées.

Bien entendu, toutes les dépendances requises et tous les référentiels personnalisés doivent être définis directement dans le pom.xmlfichier.


14

Pour IntelliJ 2016-2.4 (et je crois que d'autres versions nouvelles):

Affichage> Fenêtres d'outils> Projets Maven

Dans la nouvelle barre d'outils révélée, sélectionnez Paramètres Maven (icône d'un jeu d'outils).

Lorsque cet écran s'ouvre, développez le menu Maven et cliquez sur «Importer»

Ici, cliquez sur "Importer automatiquement les projets Maven". Assurez-vous également que l'option «JDK for Importer» correspond à la version JDK que vous souhaitez utiliser.

Cliquez sur OK. Accédez maintenant à la dépendance rouge dans votre pom.xml, sélectionnez l'ampoule rouge et cliquez sur «Mettre à jour les indices Maven».


1
choisir le bon JDK pour l'importateur m'a aidé. J'ai également dû exécuter mvn idea: clean idea: idée pour fermer les derniers problèmes.
Vincent F

9

Ce qui m'a aidé:

Navigation: Paramètres | Construction, exécution, déploiement | Maven

Spécifiez "répertoire personnel Maven" - l'endroit où vous avez installé le maven


7

Si certains modules maven ne compilent pas, vérifiez si leur pom.xml est dans la liste des "fichiers ignorés". Dans IntelliJ goto

préférences -> paramètres du projet -> maven -> fichiers ignorés

et vérifiez si le pom.xml associé est ignoré.


5

Ouvrez IntelliJ Idea, allez dans Fichier> Autres paramètres> Paramètres par défaut ...> Maven (Préférences)> Importation ou | Preferences > Maven > Importing

entrez la description de l'image ici

Cliquez sur Activer l'importation automatique dans la console.

entrez la description de l'image ici


4

Lorsque vous créez un nouveau projet, il vous suffit de choisir l'option:

...
Importer un projet à partir d'un modèle externe
Créer une structure de projet IDEA sur un modèle externe existant (Eclipse, Maven ...)
...

Vous le trouverez assez simple à partir de là.
Et dans votre cas, vous pouvez fermer votre projet et simplement en créer un nouveau. Choisissez le répertoire de votre projet, qui le remplacera, ce qui en fera un projet Maven.


D'accord. Il est presque certain que l'OP a simplement importé à tort le projet.
kaqqao

4

L'importation des dépendances Maven peut ne pas fonctionner si vous importez plusieurs fois le même chemin. Cela peut se produire automatiquement après l'importation d'un projet maven existant. Je ne peux pas comprendre pourquoi cela se produit, donc je suis enclin à penser que c'est un bug.

Par exemple, si mon projet est

hibernate
  src/main
  src/test

les trois chemins peuvent être importés en tant que nœuds supérieurs:

hibernate
src/main
src/test

Si tel est le cas, les dépendances semblent correctes, mais elles ne seront utilisées que si vous supprimez les chemins superflus (dans ce cas, src/mainet src/test). Une fois que vous avez fait cela, actualisez et cliquez sur Build> Rebuild Project. IDEA récupérera les dépendances.

Un symptôme de ce problème est que IDEA vous avertit d'un chemin dupliqué lorsque vous vérifiez manuellement une bibliothèque (deuxième capture d'écran de la question).

Il existe plusieurs façons de relire les dépendances au cas où vous en auriez besoin. Si vous allez dans l'onglet «Projets Maven», il y a une icône «Réimporter tous les projets Maven» en haut à gauche de l'onglet. Si vous pensez que IDEA est devenu confus, vous pouvez cliquer sur Fichier> Invalider les caches.


3

Allez dans la structure de votre projet, sous Paramètres du projet, Modules, sélectionnez le tableau des dépendances. Pour chaque dépendance, modifiez la portée de «Test» à «Compiler».


3

Réimportez le projet. Si vous installez le plugin maven, vous pouvez l'utiliser.

Clic droit sur le projet -> Maven -> Réimporter


3

Vérifiez d'abord le chemin spécifié pour le fichier de paramètres utilisateur: dans Paramètres -> Build, Execution, Development -> Build Tools -> Maven . Le champ doit avoir le chemin du settings.xml de votre maven. Le fichier settings.xml doit également avoir le chemin correct du référentiel distant.


Cela a fonctionné pour moi, dans le fichier settings.xml, l'entrée de la balise <url> imbriquée dans la balise <mirror> était obsolète. J'ai discuté avec mes collègues pour obtenir la valeur d'entrée mise à jour. J'ai apporté la modification à ~ / .m2 / settings.xml, fermé intelliJ et l'ai redémarré. Au redémarrage, ne faisant rien d'autre, les traits de soulignement rouges apparaissant dans la vue Maven avaient disparu. Étrangement, la plupart des dépendances racine qui ont été mises en évidence étaient toujours présentes dans l'entrée "Bibliothèques externes" de la vue Projet, avant et après avoir effectué ce correctif.
Steve T

3

J'ai eu un problème similaire, dans mon cas, j'utilise une coutume settings.xmlqui n'a pas été choisie par IntelliJ.

Solution:
File > Settings > Build, Execution, Deployment > Maven: User settings file (choisi ici mon custom settings.xml).


3

J'ai eu le même problème et j'ai essayé toutes les réponses mentionnées ici, aucune n'a fonctionné.

La solution simple est d'aller dans votre dossier de projet et de supprimer tous les fichiers .idea et .iml et de redémarrer l'ide IntelliJ. Ça marche. Pas besoin de faire quoi que ce soit avec les paramètres.


2

J'ai rencontré le problème que certaines sous-dépendances ne pouvaient pas être résolues dans IntelliJ 2016.3.X. Cela pourrait être résolu en modifiant le Maven home directorydans Paramètres> Build, Execution, Deployment> Build Tools> Maven from Bundled (Maven 3)to /usr/share/maven.

Après cela, toutes les sous-dépendances ont été résolues comme dans les versions précédentes d'IntelliJ.


2

Maven - La réimportation n'a pas fonctionné pour moi. J'ai un projet Spring dans STS (Eclipse) et ma solution est d'importer le projet dans IDEA comme ceci:

1) Fichier - Nouveau - Projet à partir de sources existantes ... - sélectionnez le répertoire - choisissez Eclipse.
2) Réglez Maven autoimport sur true dans les paramètres.
3) Cliquez ensuite avec le bouton droit dans pom.xml et choisissez Ajouter en tant que projet Maven.

Après cela, il a tout importé.


2

J'ai eu le même problème avec mon macbook, j'ai juste fait un petit changement pom.xmlet il a commencé à télécharger toutes les dépendances:

Des dépendances antérieures ont été écrites comme ci-dessous pour ma machine Windows:

<dependencies>
 <dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>
</dependencies>

Je viens enlevé les <dependencies>et </dependencies>balises et il a commencé à télécharger toutes les dépendances:

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>

Je ne suis pas sûr que cela fonctionnera pour vous ou pas .. mais a bien fonctionné pour moi.

Merci


1

Si dans le coin inférieur droit, il est indiqué "2 processus en cours d'exécution ..." ou similaire, vous devrez peut-être simplement attendre que cela se termine, car cela peut prendre du temps pour télécharger tous les bocaux.


1

J'ai résolu ce problème en mettant à jour mon fichier settings.xml avec une configuration miroir correcte, il semble qu'Intellij essaiera de télécharger des métadonnées à partir du référentiel chaque fois que le module maven est importé.


1

Détournement un peu pour ajouter ce qui a fini par fonctionner pour moi:

Allez dans la Maven Projectsbarre latérale sur le bord droit de l'EDI et vérifiez que vos dépendances y sont correctement répertoriées sous votre module. En supposant qu'ils le soient, il suffit de demander à IDEA de réimporter ensuite (le premier bouton en haut, ressemble à deux flèches bleues formant un cercle dans le sens antihoraire).

Une fois que j'ai fait cela, et laissé IDEA recharger le projet pour moi, toutes mes dépendances ont été magiquement comprises.

Pour référence: c'était avec IDEA 13.1.2


1

J'ai fait face au même problème et j'ai essayé tout ce qui a été suggéré, ce qui n'a pas résolu le problème, j'utilisais Intellij version 13.1.3

Enfin, après avoir passé plus de quelques heures à essayer de le réparer, j'ai décidé d'essayer une version mise à niveau et j'ai ouvert le projet dans la version 14.1.4, ce qui a finalement résolu le problème. Je pense que c'est un bug probable dans la version précédente.

J'espère que ça aide!


1

J'ai pu le résoudre en supprimant les modules inutiles de la liste des paramètres du projet -> Modules .

entrez la description de l'image ici

Il s'avère que ces modules supplémentaires ont été créés automatiquement par IntelliJ IDEA lorsque j'ai créé le projet IntelliJ en important à partir du dossier du projet (plutôt qu'en ouvrant pom.xml). Ensuite, après avoir déclaré le projet comme projet Maven, les modules appropriés ont été créés et les modules existants étaient en conflit avec eux. Il est également possible d'exclure ces modules lors de la création du projet.


1

La suppression du dossier .idea du répertoire du projet, puis la réimportation du projet en tant que projet Maven, ont fonctionné pour moi.


1

Dans mon cas, l'un des modules a été ignoré pour une raison quelconque. Pour résoudre ce problème: cliquez avec le bouton droit sur le module problématique et choisissez «Annuler les projets».

exemple de projet ignorer


1

Dans mon cas, le chemin pour JAVA utilisé par MAVEN n'a pas été défini comme JAVA_HOME tel que configuré sur la machine. Par conséquent, il n'essayait même pas de télécharger les dépendances. Étapes que j'ai suivies pour résoudre ce problème,

  1. Vérifié pour le chemin JAVA, Paramètres >> Build >> Build Tools >> Importation >> JDK pour l'importateur . Je l'ai pointé sur JAVA_HOME.

  2. mvn clean install -U

    Utilisée ci-dessus pour forcer le téléchargement des dépendances.

  3. Projets Maven réimportés


0

Si tout le reste échoue, vérifiez si le fichier jar dans votre référentiel local .m2 est en effet valide et non corrompu. Dans mon cas, le fichier n'avait pas été entièrement téléchargé.


0

Dans maven, les dépendances ont été incluses pour moi lorsque j'ai supprimé la section xml dependencyManagement et que j'avais juste des dépendances directement sous la section projet


0

Le problème semble être que malgré la liste de vos dépendances dans le fichier pom.xml, IntelliJ IDEA ne reconstruit pas ces dépendances lorsque vous exécutez votre projet.

Ce qui a fonctionné pour moi, c'est ceci:

Allez dans «Exécuter» -> «Modifier les configurations ...», recherchez votre application, assurez-vous que la section «Avant le lancement:» est développée, cliquez sur le signe plus vert et sélectionnez «Construire le projet».

entrez la description de l'image ici


0

j'ai pu corriger le mien en ajoutant ces lignes de code après la balise build dans le fichier pom.xml, je l'ai comparé à partir de mon projet en cours et j'ai découvert que c'était la différence, maintenant je vais bien.

<repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.