Plate-forme: IntelliJ Community Edition 10.0.3
SDK: jdk1.6.0_21
OS: Windows 7
J'ai donc une situation étrange avec IntelliJ qui m'a complètement bouleversé. J'ai installé un projet Maven et ajouté log4j en tant que dépendance dans le fichier pom.xml. Les inspections IDEA fonctionnent correctement et mon unité teste toutes les tâches de compilation et d'exécution.
J'ai ensuite ajouté la bibliothèque jmime de hunnysoft à mon référentiel maven local à l'aide de mvn install: install-file comme suit.
mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
Maven a bien installé le fichier jar dans mon référentiel local.
Je suis ensuite allé dans Settings => Maven => Repository Services d'IntelliJ et mis à jour mon référentiel local (pour qu'IntelliJ réindexe le contenu du référentiel).
Enfin, j'ai ajouté la dépendance suivante à mon fichier pom.xml (juste au-dessus de la dépendance log4j).
<dependency>
<groupId>jmime</groupId>
<artifactId>jmime</artifactId>
<version>3.1.1e</version>
</dependency>
Je crée maintenant une nouvelle classe comme suit:
package com.stackoverflow.question;
import org.Apache.log4j.Logger;
import com.hunnysoft.jmime.ByteString;
import com.hunnysoft.jmime.Field;
import com.hunnysoft.jmime.FieldBody;
public class StackOverflowQuestion {
public Field create(String name, String text) {
Logger.getLogger(getClass()).debug("create entered");
FieldBody body = new FieldBody();
body.setText(new ByteString(text));
Field field = new Field();
field.setFieldName(name);
field.setFieldBody(body);
return field;
}
}
Maintenant pour l'étrangeté. Le mécanisme d'intention d'IntelliJ détecte et reconnaît l'importation de l'enregistreur dans le fichier maven pom. Cependant, pour toutes les importations hunnysoft, il indique: "Impossible de résoudre le symbole 'ByteString/Field/FieldBody'",MAISBuild => Compiler 'StackOverflowQuestion.Java' compile tout correctement et le test unitaire que j'ai créé pour cette classe fonctionne bien (bien que les intentions marquent également l’appel à create () comme une zone à problèmes).
Donc quelque part, d’une manière ou d’une autre, IntelliJ ignore le fichier jmime.jar du sous-système d’intention. Je suis confus parce que la dépendance log4j fonctionne bien et que tout est compilé et fonctionne bien. F12 ("Go To Declaration") fonctionne sur l'importation de l'enregistreur, mais rompt sur toutes les importations de jmime.
Oh, autre chose, si je passe à la vue "Packages" de la fenêtre "Projets", le paquetage "com.hunnysoft.jmime" apparaît et je peux voir TOUTES les classes que j'ai importées dans le fragment de code ci-dessus sous "Bibliothèques". . La suppression de la dépendance ci-dessus du fichier pom.xml entraîne la disparition de ce package et la rupture de la compilation.
Il semble que le chemin de classe de l'inspection soit rompu, mais il ne semble pas y avoir de paramètre pour cela nulle part dans le menu Settings => Intentions | Zones du compilateur (je ne pense pas que de tels paramètres soient attendus, je pense que le IDEA devrait déjà connaître le bon chemin d'accès aux classes en fonction du fichier pom et du JDK).
En guise d’expérience finale, j’ai créé un tout nouveau projet d’application J2SE standard (sans utiliser maven) et ajouté le fichier jmime.jar directement au projet en tant que l’une de ses bibliothèques. Je rencontre exactement les mêmes problèmes que ceux décrits ci-dessus dans ce nouveau projet.
Voici le fichier MANIFEST.MF du fichier jmime jar.
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.4
Created-By: 10.0-b23 (Sun Microsystems Inc.)
Name: com/hunnysoft/jmime/
Sealed: true
Specification-Title: Hunny JMIME
Specification-Version: 3.1.1
Specification-Vendor: Hunny Software, Inc.
Implementation-Title: com.hunnysoft.jmime
Implementation-Version: 3.1.1E
Implementation-Vendor: Hunny Software, Inc.
Je ne vois rien d'inhabituel dans ce fichier jar.
Ma meilleure hypothèse est que le problème pourrait être un problème de dépendance manquant. Mais autant que je sache, jmime est supposé être autonome (JarAnalyzer ne propose rien, mais je ne suis pas sûr que cela arriverait si un pot de dépendance manquait).
Alors, quelqu'un a des idées?
Tout d'abord, vous devriez essayer File | Invalidate Caches
et si cela ne vous aide pas, supprimez le répertoire système IDEA . Ensuite, réimportez le projet Maven et voyez si cela vous aide.
Dans certains cas étranges, les classes compilées peuvent signaler des informations erronées et confondre IDEA. Vérifiez que les classes de ce fichier jar indiquent les noms corrects à l’aide de javap .
L'astuce suivante a résolu ce problème pour moi:
La version de mon idée est 12.0.4
Pour les utilisateurs de Gradle:
Vous devrez peut-être synchroniser votre projet avec votre fichier build.gradle
.
Vous pouvez cliquer avec le bouton droit de la souris sur votre fichier de niveau dans la sous-fenêtre Projet, mais qui ne semblait rien faire pour moi (je suspecte un bogue dans ma version). Vous saurez si cela se produit car les tâches IntelliJ que vous attendez ne seront pas lancées. Au lieu de cela, ouvrez le volet Outil Gradle, puis cliquez sur le bouton Synchroniser (actualiser). Cela a fonctionné pour moi là où l'invalidation du cache et le redémarrage ont échoué.
Ma propre situation: J'utilisais un projet Scala avec Gradle et je devais le faire.
Une étape supplémentaire, quand j'ai fait Fichier -> Invalider les caches et redémarrer l'EDI, ouvrir un projet. Il est apparu une boîte à pain en haut à droite me demandant si l'activation de l'importation automatique était activée, ce qui a résolu le problème.
Aucune des solutions ci-dessus n'a fonctionné pour moi. Ce qui a fait était de supprimer le fichier main.iml manuellement et cela a soudainement fonctionné.
Cela a été mentionné dans une autre réponse à cette même question ici , mais cela seul résout ce problème pour moi. Je fais toutes mes versions dans un terminal séparé, en dehors d'IntelliJ. Le cache doit donc disposer des autorisations appropriées pour que l'application IntelliJ puisse les lire.
Exécutez-le à partir du dossier racine du projet.
$ mvn -U idea:idea
Autre chose à vérifier: assurez-vous que les dépendances ne sont pas dupliquées. Dans mon cas, j'ai constaté qu'un module présentant ce comportement était mal configuré comme suit: il dépendait d'un autre module et il dépendait d'un fichier jar produit par cet autre module. Cela signifiait pour chaque symbole référencé en double et était ambigu.
Un correctif a-t-il été publié? Apparaît que le problème concernait initialement la v11/12 en raison d'une "refonte du compilateur" en 2013. Des discussions sur les problèmes connexes ont eu lieu à Jira jusqu'à la fin de 2014 . http://youtrack.jetbrains.com/issue/IDEA- 98425
De plus, Jira IDEA-98425 était marqué fixé mais non vérifié (sur la v12.0.3). Aucune des opérations suivantes work-around n'a permis de résoudre ce problème "Impossible de résoudre le symbole" avec la version 13.1.1 sous Windows
une. Supprimez le dossier .IdealIC13 (puis, File\Invalidate Caches/Restart)
b. Depuis la fenêtre Maven Projects,
b.1 mvn -U idée: idée - L'exécution de cet objectif générique suppose de recharger les dépendances. Cela fonctionne, mais depuis le dernier FRI, l’exécution de cet objectif maven a échoué car il a essayé de recompiler le projet (bien sûr, il échoue car "Impossible de résoudre les symboles", c’est ce que j’essaie de corriger en exécutant cette commande en premier lieu) mvn -version - montre la version de maven référencée 3.2.5 et que ça marche
b.2 Cliquez simplement sur le projet et Reimport
b.3 Fichier\Invalidate Caches/Restart
c. Essayé à la fois Activer et désactiver ce paramètre: Fichier -> Paramètres -> Maven -> Importation -> "Utiliser maven3 pour importer un projet"
ré. Settings\Maven\Multiproject build fail policy = Echec final (au lieu de Défaut)
Rien ne fonctionne. Que se passe-t-il avec le soutien d'IntelliJ sur Maven?.
https://youtrack.jetbrains.com/issue/IDEA-99302
À partir de l'historique des versions de JetBeans, https://www.jetbrains.com/company/history.jsp
IntelliJ v14 NOV 2014
IntelliJ v13 DÉC 2013
Je suppose que la v12 corrigée (bien que unverified) soit intégrée aux versions ultérieures. Quelqu'un ayant des problèmes similaires avec quelle version d'IntelliJ? S'il vous plaît partager votre expérience. IntelliJ maven support semble cassé.
Des noms de module incohérents/en double dans la structure de projet étaient à l'origine de ce problème pour moi.
File -> Project Strucutre -> Modules
Cela peut arriver lorsque IntelliJ ne s’arrête pas correctement et ne peut donc pas enregistrer correctement les noms de modules renommés.
Je viens d'avoir ce problème et il ne serait tout simplement pas partir. J'ai finalement effacé le répertoire de configuration IntelliJ dans ~
et reconstruit mon projet IntelliJ à partir de zéro. (Cela n'a pris qu'environ 15 minutes à la fin, comparé à passer une heure à essayer de résoudre les problèmes liés aux fichiers en cache, etc.)
Notez que je suppose que le problème initial a été causé par quelque chose comme javathings.blogspot.com/2009/11/too-many-open-files-in-intellij-idea.html
(NB: à partir de 2018, ce lien est mort, mais archive.org a une copie de la page de la date de l'écriture de cette réponse - ed.) ou un problème d’espace disque/mémoire provoquant un crash de Java. IntelliJ semblait juste être corrompu.
Ma structure de projet:
src -> main -> scala -> mypackages
Ce qui a fonctionné:
Cliquez avec le bouton droit sur le dossier scala
, puis cliquez sur "Marquer le répertoire en tant que racine des sources".
Aucun des autres répondants ne travaillait pour moi. Mes importations n'étaient pas résolues, car IntelliJ indiquait un fichier .m2 incorrect.
Version IntelliJ: IntelliJ Idea 2018.1.5
Mon emplacement pour le répertoire .m2 a été pointé sur le mauvais chemin. Tout ce que j'ai fait pour le réparer a été de re-pointer IntelliJ vers le répertoire .m2 de droite et de le mettre à jour.
Tout d'abord, allez à: Fichier-> Paramètres-> Construire, Exécuter, Déployer-> Construire Outils-> Maven
Je devais changer le fichier de paramètres utilisateur: et le référentiel Local: à l'emplacement correct de mon répertoire .m2.
Après cela, allez dans: Fichier-> Paramètres-> Construire, Exécuter, Déployer-> Construire Outils-> Maven-> Dépôts
et cliquez sur le bouton Mettre à jour.
Parfois, je viens d'ouvrir la structure du projet, et cliquez sur projet, puis choisissez une version du SDK .
Si votre projet maven est un projet multi-module, vérifiez si certains des modules sont ignorés par intellij.
gs-multi-module
dans l'image suivante).Unignore Projects
.Attendez ensuite que intellij ait terminé l’indexation, après quoi cela fonctionnera.
Pour une autre alternative.
J'ai eu ce problème aussi quand j'ai utilisé JDK7_07. J'ai essayé toutes les réponses ici (sauf la suppression du répertoire système IDEA). Mais j'ai toujours le problème. Donc ce que j'ai fait c'est:
Installez le dernier JDK (JDK7_45) et configurez le JDK de Intellij sur le nouveau, et tout fonctionne.
Réimporter le projet a fonctionné pour moi . Clic droit sur Projet -> Maven -> Réimporter
quand j'ai Fichier -> Invalider les caches et redémarrer l'EDI, ouvrez un projet. Il y avait un dialogue en haut à droite "Modifications Maven détectées" et une option pour importer et activer l'importation automatique. Même après avoir importé le projet ici, j'avais le même problème. L'étape ci-dessus a résolu le problème.
Dans mon cas, j'essaie d'ouvrir un projet de démarrage de printemps d'IntellijIdea mais j'ai le même problème que l'impossibilité d'importer tous les fichiers liés à Spring.
Puis j'ai fait:
Fichier -> Fermer le projet -> Importer le projet -> Importer à partir d'un modèle externe -> Choisir une gradation -> Suivant -> Sélectionner le projet à partir de l'emplacement du fichier -> Terminer
Maintenant, tout fonctionne comme prévu.
J'ai vu beaucoup de réponses ici mais j'ai finalement trouvé cette solution. Il peut utiliser pour quelqu'un comme moi.
Après avoir invalidé mon cache et redémarré; et confirmant que mes paramètres maven étaient corrects, je voyais toujours le symbole "Impossible de résoudre le problème" pour un module que j'avais défini comme dépendance. Il s'avère que je l'avais réglé sur la mauvaise portée.
Vous pouvez vérifier en cliquant avec le bouton droit de la souris sur votre module et en sélectionnant Ouvrir les paramètres du module. Cliquez sur l'onglet Dépendances et vérifiez que l'étendue de votre dépendance non résolvable est définie sur Compiler.
Dans mon cas, seul buildDir est supprimé . Dans ce cas, File | Invalidate Caches
ne fonctionne pas.
Quand je fais Build | Make Project
avant File | Invalidate Caches
, tout fonctionne bien.
Aucune des solutions ci-dessus ne l'a résolu pour moi. J'ai eu le même problème où le code compilé très bien, mais IntelliJ a montré qu'il ne pouvait pas trouver l'importation. Même si IntelliJ a suggéré l’importation en premier lieu à partir de l’achèvement du code.
Ma solution a été de tout déplacer vers le package par défaut, de supprimer le package com.foo.bar
, puis de le créer à nouveau et de tout restaurer.
parfois, lorsque vous créez un package tel que com.mydomain.something, la structure de répertoires n'est pas créée et vous êtes laissés avec un seul dossier nommé "com.mydomain.something" dans ce cas devrait créer une structure de répertoire, comme
com
|_mydomain
|_something
Supprimez le fichier: iml trouvé dans Java et testez les dossiers à l'intérieur du projet, puis invalidez et redémarrez.
Il va demander si je peux supprimer les projets. Mettez oui. L'erreur disparaîtra.
Les solutions suggérées ne fonctionnaient pas. Je devais unignore plusieurs projets, en faisant un clic droit sur le projet pom => maven => unignore.
Puis après un
mvn clean install -T 6 -DskipTests
dans la console, IntelliJ était heureux à nouveau. Aucune idée de la façon dont les projets ont été ignorés ...
Pour les utilisateurs d’Intellij Idea, cette commande avant même l’importation du projet peut aider:
./gradlew build ./gradlew idea
Pour les projets Gradle:
<problematic-project-root>/.idea
<problematic-project-root>/.gradle
.iml
dans <problematic-project-root>
DEL /S /Q *.iml
find . | grep -e .iml$ | xargs rm
Oui, vous devez créer des bibliothèques contenant les JAR dont vous avez besoin et les ajouter en tant que dépendance dans votre module.
Invalidate Caches a fonctionné pour moi, mais après l'exécution de l'application, la même erreur s'est produite.
Alors j'ai essayé ( Intellij ):
1 - Barre de menu - Refactor | Construire | Run | Outils - cliquez sur Build then Rebuild Project
2 - MVN propre
3 - Faites un clic droit sur projet> Maven> Générer des sources et mettre à jour le dossier
J'espère que cela fonctionne pour toi.
Merci
mvn idea:idea
a travaillé pour moi. Je l'ai trouvé ici . J'ai passé plus d'une heure, j'espère que ça aidera quelqu'un
Ce qui a fonctionné pour moi a été de "marquer comme racine du répertoire" le répertoire dans lequel se trouvait la classe marquée en rouge, après quoi la marque rouge a disparu. On dirait que pour une raison quelconque il n'a pas été marqué.
Pour Idea 2017.1 + Gradle, le plugin est en quelque sorte buggé. Essayé tous synchroniser, invalider + redémarrer, rien n'a fonctionné. Selon https://github.com/gradle/gradle/issues/2315 , cela a fonctionné pour moi: 1. Close Idea 2. Tapez gradle idea en ligne de commande (devrait générer 3 fichiers: .iml, .ipr, .iws) 3. Lancez idée et ouvrez le fichier .ipr créé, cela devrait importer votre projet de toutes pièces, avec des dépendances câblées dans ces 3 fichiers
Dans mon cas, ce problème est apparu après la vérification d’une importante restructuration des fichiers de mon projet maven. Au moment de mon départ, certains de mes propres changements étaient toujours actifs. Pour autant que je sache, aucun changement n'a été apporté aux fichiers en cours de restructuration.
Invalider le cache et redémarrer n'a pas fonctionné pour moi .. Ce qui a fonctionné a été:
si projet maven, accédez simplement aux paramètres -> outils de construction -> maven -> importation . cochez la case "importer le projet maven automatiquement" . résoudra le problème.
Si rien ne fonctionne, faites un clic droit sur votre répertoire source, marquez le répertoire comme "Répertoire source" puis faites un clic droit sur le répertoire du projet et maven -> réimporter.
cela a résolu mon problème.
Pour MAVEN,
J'ai essayé toutes les méthodes ci-dessus, mais je n'ai pas trouvé la solution,
Alors, voici les étapes que j'ai essayées (un mélange de solutions),
mVN propre
idée MVN: propre
(Assurez-vous de ne pas avoir de fichiers .iml supplémentaires autres que les fichiers de projet/sous-projets .iml)
Si tous mes fichiers pom.xml sont configurés correctement et que des problèmes persistent avec Maven dans IntelliJ, procédez comme suit
P.S . J'ai passé des heures à comprendre (étape 3) que le processus de démon Java d'IntelliJ qui gère la mise à jour de l'index Maven faisait quelque chose de mal et que je devais simplement faire en sorte qu'IntelliJ le lance à partir de zéro. _ {Le problème a été résolu sans même redémarrer IntelliJ lui-même.
"Fichier -> Invalider le cache et le redémarrage" résoudra toutes les dépendances.
La suggestion numéro un d'Invalidate Caches/Restart ... ne m'a pas fonctionné, pas plus que les autres solutions. En fin de compte, mes comptes de dépôt maven n'étaient pas correctement configurés. J'ai résolu ce problème en redéfinissant manuellement les paramètres settings.xml et le répertoire de référentiel:
Fichier -> Paramètres ... -> Création, exécution, déploiement -> Outils de création -> Maven
Ensuite, pour Fichier de paramètres utilisateur et Référentiel local , vérifiez le Remplacer et pointez-le vers le répertoire settings.xml et le référentiel appropriés.
J'ai eu un problème similaire lorsque je suis passé à un nouvel ordinateur.
J'ai copié tous les fichiers IDEA (même les dossiers correspondants% APPDATA), mais la construction Maven a ensuite abouti, mais IDEA n'a trouvé aucune classe dans les dépendances lors de sa construction.
La solution: j'ai commencé avec un nouveau profil propre IDEA en supprimant les dossiers des dossiers% APPDATA%
Allez dans Fichier-> Structure du projet -> SDK et vérifiez si le chemin du fichier du SDK est correct.
Ce qui m'a aidé à résoudre ce problème:
J'ai eu une autre branche, suis passé à cette branche et construit le projet avec mvn clean install. Tout était ok, puis je suis retourné au maître et reconstruit le projet et les erreurs ont disparu. Invalider les caches et redémarrer ne m'a pas aidé.
Ou peut-être que le fichier que vous importez est trop volumineux. C’est mon cas lorsque je change la propriété Intellij: 25000, et redémarrez l'IDE, le problème a disparu. J'espère que cela t'aides.
Vous avez eu du mal à importer des bibliothèques Java standard telles que Java.beans. *
Corrigé sur mon système Redhat 7 en le pointant sur le bon chemin JRE.
Fichier-> ProjectStructure-> SDK-> 1.8 Changé 'chemin d'accès du JDK:' à /usr/lib/jvm/Java-1.8.0-openjdk-1.8.0161-2.b14.el7.x86_64 au lieu de/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0161-2.b14.el7_4.x86_64
L'ancien chemin vers jdk (avec la différence de chemin _4) ne contenait presque rien. Il manquait beaucoup de bibliothèques Java.
Cela semble m'arriver surtout quand le pot de dépendance est aussi un pot de gras. Heureusement, j'avais le contrôle de la construction du Fat Jar, après l'avoir transformé en un non-Fat Jar, les choses ont bien fonctionné. Aucune des autres corrections apportées aux réponses ou commentaires n’a fonctionné pour moi. Il convient également de noter que mon code était en Kotlin et que Fat Jar regroupait également certaines dépendances de Kotlin.