web-dev-qa-db-fra.com

Importer des dépendances Maven dans IntelliJ IDEA

J'ai une petite question à propos d'IntelliJ IDEA 11. Je viens d'importer un projet de Subversion, 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 automatiquement toutes les dépendances de maven - IDEA affiche les erreurs de dépendance uniquement lorsque j'ouvre cette classe/C'est ce que j'obtiens ici:

enter image description here

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

MISE À JOUR: Après quelques modifications, j'ai trouvé un moyen de résoudre mon problème. C'est ce que j'ai fait:enter image description here

mais je pense logiquement que cela n'inclut pas et ne vérifie pas les nouvelles dépendances à venir?! ... Existe-t-il une zone de paramètres pour cela dans intelliJ - dépendances d'exportation automatique vers classpath?!

158
Zaur Guliyev

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 vous demande généralement si vous souhaitez configurer Importation automatique pour les projets Maven. Cela signifie que si vous apportez des modifications à votre POM, ces modifications seront automatiquement chargées.

Vous pouvez activer cette fonction dans Fichier> Paramètres> Maven> Importation. Une case à cocher indiquant "Importer automatiquement les projets Maven" est également disponible.

Si cela ne vous aide pas, je vous suggère de procéder à un nettoyage complet et de recommencer:

  • Fermez la fenêtre de votre projet (et IntelliJ) et supprimez tous les fichiers *.iml et tous les dossiers .idea (il devrait y en avoir un par module).
  • Exécutez mvn clean install à partir de la ligne de commande
  • Réimportez le projet dans IntelliJ et faites attention quand 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 Construire, Exécution, Déploiement> Outils de compilation> Maven> Importer dans vos préférences IntelliJ.

228
Alonso Dominguez

Je pensais jeter mon 0,02 $ ici: Pour moi, la solution à ce problème était d'aller à 

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

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

Mise à jour: Répétez cette opération avec IntelliJ 15, qui ne dispose plus de l'option "utiliser maven3 pour importer". La cause en était que parfois IntelliJ "n'analyse pas correctement les dépendances maven" et s'il ne parvient pas à analyser correctement l'un d'entre eux, il abandonne apparemment tous d'entre eux. Vous pouvez savoir si c'est le cas en ouvrant la fenêtre de l'outil 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".  enter image description here

Vous pouvez réellement voir l'échec de real en déplaçant la souris sur le nom du projet lui-même. 

 enter image description here

Dans mon exemple, il était écrit "Problèmes: aucune version disponible pour XXX" ou "Impossible de lire le descripteur de l'artefact org.xy.z" ref: https://youtrack.jetbrains.com/issue/IDEA-128846 and https://youtrack.jetbrains.com/issue/IDEA-152555

Il semble que dans ce cas, j’ai eu affaire à un bocal n’ayant pas de fichier pom associé (dans notre référentiel maven nexus, ainsi que dans mon référentiel local). Si c’est également votre problème, vous pouvez vous en servir si vous n’avez pas besoin d’utiliser les classes de ce fichier jar dans votre propre code (par exemple, une dépendance transitive maven uniquement). (temporairement), le projet maven est rechargé, puis supprimez la mise en commentaire. Après cela, IntelliJ "se souvient" de ses anciennes dépendances de travail. Ajouter une exclusion mictive transitive temporairement pourrait également le faire, si vous le rencontriez dans une chaîne de dépendances transitive. "

Une autre chose qui pourrait aider est d’utiliser une "version plus récente" de maven que celle fournie avec la version 3.0.5 . Fournie. Pour la configurer en tant que configuration par défaut, fermez toutes vos fenêtres intellij, puis ouvrez les préférences -> build , exécution et déploiement -> outils de compilation -> maven, et changez le répertoire de base de maven, il devrait indiquer "Pour le projet par défaut" en haut de l'ajustement, mais vous pouvez également l'ajuster pour un projet particulier, tant que vous "importez" après l'avoir ajusté.

Autres actions utiles: suppression de vos dossiers de cache intellij (Windows: HOMEPATH /. {IntellijIdea, IdeaC} XXX linux ~/.IdeaIC15) et/ou la désinstallation et la réinstallation d’IntelliJ. GL!

59
rogerdpack

Lors de l'importation du projet, sélectionnez pom.xml au lieu du répertoire du projet. Ça devrait marcher.

28
chichi

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

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

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

19
CrazyCoder

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

Affichage> Fenêtres d'outils> Projets Maven

Dans la barre d'outils récemment 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 les projets Maven automatiquement". Assurez-vous également que l'option "JDK pour l'importateur" correspond à la version du JDK que vous voulez utiliser.

Cliquez sur OK. Maintenant, allez à la dépendance rouge dans votre pom.xml, sélectionnez l'ampoule rouge et cliquez sur 'Mettre à jour les index Maven'.

12
Paul Back

Ce qui m'a aidé:

Navigation: Paramètres | Construire, Exécuter, Déployer | Maven

Spécifiez "répertoire de base Maven" - l'emplacement d'installation du maven.

8
Anatolii Stepaniuk

Si certains modules maven ne compilent pas, vérifiez si leur pom.xml figure 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é.

6
Udo

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

enter image description here

Cliquez sur Activer l'importation automatique dans la console.

enter image description here

5
Prashanth Sams

L'importation de 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 n'arrive pas à comprendre pourquoi cela se produit, alors 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 noeuds supérieurs:

hibernate
src/main
src/test

Si tel est le cas, les dépendances semblent être correctes, mais elles ne seront utilisées que si vous supprimez les chemins superflus (dans ce cas, src/main et src/test). Une fois cela fait, actualisez et cliquez sur Construire> Reconstruire le projet. 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.

4
Jano

Lorsque vous créez un nouveau projet, vous devez simplement choisir l'option:

...
Importer un projet depuis 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 et en fera un projet Maven.

4
Markus Coetzee

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' à 'Compile'.

3
Bud

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

Faites un clic droit sur le projet -> Maven -> Réimporter

3
Damith Ganegoda

Premier chemin de vérification Spécifié pour Fichier de paramètres utilisateur: dans Paramètres -> Construire, Exécution, Développement -> Outils de compilation -> Maven . Le champ doit avoir le chemin du settings.xml de votre homme. De plus, le fichier settings.xml doit avoir le chemin correct du référentiel distant.

2
amol13

J'ai eu le même problème avec mon macbook, juste une petite modification dans pom.xml et le téléchargement de toutes les dépendances a commencé

Les dépendances antérieures étaient é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 de supprimer les balises <dependencies> et </dependencies> et le téléchargement de toutes les dépendances a commencé:

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

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

Merci

1
Amit Joshi

J'ai rencontré le même problème et essayé tout ce qui a été suggéré mais qui n'a pas résolu le problème. J'utilisais Intellij version 13.1.3.

Finalement, après avoir passé plus de deux heures à essayer de résoudre ce problème, j'ai décidé d'essayer une version mise à niveau et ouvert le projet en version 14.1.4, ce qui a finalement résolu le problème. Je penserais cela comme un bogue probable dans la version précédente.

J'espère que ça aide!

1
sjaiswal

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

1
Abel Zhan

Suppression du dossier .idea du répertoire du projet, puis réimportation du projet en tant que projet Maven est ce qui a fonctionné pour moi.

1
Janac Meena

Maven - Reimport n'a pas fonctionné pour moi . J'ai un projet Spring dans STS (Eclipse) et ma solution consiste à importer le projet dans IDEA comme suit:

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

Après cela, tout a été importé.

1
Svitlana Onish

Si dans le coin inférieur droit, il est écrit "2 processus en cours ..." ou similaire, vous devrez peut-être attendre que l'opération soit terminée, car le téléchargement de tous les fichiers jar peut prendre du temps.

1
djechlin

J'ai pu résoudre ce problème en supprimant les modules inutiles de la liste Paramètres du projet -> Modules.

 enter image description here

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 depuis le dossier du projet (au lieu d'ouvrir le fichier pom.xml). Ensuite, après avoir déclaré le projet en tant que 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
elyor

Détournant un peu pour ajouter ce qui a finalement fonctionné pour moi:

Allez dans la barre latérale Maven Projects sur le bord droit de l'EDI et vérifiez que vos dépendances sont répertoriées correctement sous votre module. En supposant qu'ils le soient, il suffit de demander à IDEA de procéder à une nouvelle importation (le premier bouton en haut ressemble à deux flèches bleues formant un cercle dans le sens anti-horaire).

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

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

1
Sunspar

J'ai rencontré un problème: certaines sous-dépendances ne pouvaient pas être résolues dans IntelliJ 2016.3.X. Cela pourrait être corrigé en modifiant le Maven home directory dans Paramètres> Construire, Exécution, Déploiement> Outils de compilation> Maven de Bundled (Maven 3) à /usr/share/maven.

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

1
Johannes Stadler

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

La solution simple consiste à accéder au dossier de votre projet, à supprimer tous les fichiers .idea et .iml, puis à redémarrer IntelliJ ide. Ça marche. Pas besoin de faire quoi que ce soit avec les paramètres.

1
Yashaswi N P

Je devais définir correctement le répertoire personnel Maven dans les paramètres et cocher "Importer le projet maven automatiquement" dans la section d'importation dans les paramètres. Il a commencé à résoudre les dépendances après cela.

0
pavithraCS

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

0
seahorse

j'ai pu réparer le mien en ajoutant ces lignes de code après la balise de construction dans le fichier pom.xml. Je l'ai comparé à partir de mon projet en cours d'exécution et j'ai découvert que c'était la différence. Maintenant, je suis tout bon.

<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>
0
ChibuezePaul ISoft

Dans mon cas, l’un des modules a été ignoré pour une raison quelconque… .. Pour résoudre ce problème, procédez comme suit: Cliquez avec le bouton droit de la souris sur le module posant problème et choisissez "Unignore Projects". 

 unignore project example

0
KernelMode

J'ai eu un problème similaire, dans mon cas, j'utilise un settings.xml personnalisé qui n'a pas été sélectionné dans IntelliJ. 

Solution:
File > Settings > Build, Execution, Deployment > Maven: User settings file (choisissez ici mon fichier settings.xml personnalisé).

0
petre

Si tout le reste échoue, vérifiez si le fichier JAR de votre référentiel .m2 local est bien valide et non corrompu. Dans mon cas, le fichier n'avait pas été complètement téléchargé.

0
Markus Barthlen

Dans mon cas, le chemin d'accès pour Java utilisé par MAVEN n'était pas défini sur Java_HOME tel que configuré sur la machine. Par conséquent, il n'essayait même pas de télécharger les dépendances. Les étapes que j'ai suivies qui ont résolu ce problème,

  1. Vérifié le chemin Java, Paramètres >> Construire >> Outils de compilation >> Importer >> JDK pour l'importateur. Il l'a pointé sur Java_HOME.

  2. mvn clean install -U

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

  3. Re importés Maven Projects

0
Akanksha Sharma

Rien n'a fonctionné pour moi jusqu'à ce que j'aie essayé "File --> Open", puis que je me sois dirigé vers le fichier POM. 

0
gorbysbm

Vous travaillez peut-être sous le réseau interne d'une entreprise.

Si tel est le cas, pour télécharger ou ajouter des dépendances Maven externes, il peut être nécessaire de mettre à jour votre fichier settings.xml sous user/<username>/.m2.

Contactez votre administrateur pour lui fournir le fichier settings.xml correct, puis pour le coller dans votre dossier .m2.

0
nishchay3

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 est la suivante:

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".

 enter image description here

0
Mike Nakis