Plateforme: 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 déconcerté. J'ai configuré un projet Maven et j'ajoute log4j comme dépendance dans le fichier pom.xml. Les inspections IDEA fonctionnent bien et mon unité teste tous les compiler et exécuter.
J'ai ensuite ajouté la bibliothèque jmime de hunnysoft à mon référentiel maven local en utilisant le fichier 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 très bien installé le fichier jar dans mon référentiel local.
Je suis ensuite allé dans Paramètres d'IntelliJ => Maven => Services de référentiel et j'ai mis à jour mon référentiel local (afin 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 très bien l'importation de l'enregistreur dans le fichier pom maven. Cependant, pour toutes les importations hunnysoft, il signale: "Impossible de résoudre le symbole 'ByteString / Field / FieldBody'", MAIS Build => Compile '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 un problème).
Quelque part, IntelliJ ignore en quelque sorte le fichier jmime.jar pour le sous-système d'intention. Je suis confus parce que la dépendance log4j fonctionne bien et que tout se compile et fonctionne correctement. F12 ("Go To Declaration") fonctionne sur l'importation Logger, mais interrompt toutes les importations jmime.
Oh, une autre chose, si je vais dans la vue "Packages" dans la fenêtre "Projets", le package "com.hunnysoft.jmime" apparaît et je peux voir TOUTES les classes que j'ai importées dans l'extrait 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 compilation s'arrête.
Il semble que le chemin de classe de l'inspection soit rompu, mais il ne semble pas y avoir de paramètre pour cela n'importe où dans Paramètres => Intentions | Zones du compilateur (pas que je m'attendais à de tels paramètres, je pense que l'IDEA devrait déjà connaître le chemin de classe correct en fonction du fichier pom et du JDK).
Comme dernière expérience, j'ai créé un tout nouveau projet d'application standard J2SE (sans utiliser maven) et ajouté le fichier jmime.jar directement au projet en tant qu'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 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 supposition est que le problème pourrait être un problème de dépendance manquant. Mais AFAIK jmime est censé être autonome (JarAnalyzer ne propose rien, mais je ne suis pas sûr que ce soit le cas si un pot de dépendance est manquant).
Alors, quelqu'un a des IDÉES?
la source
Réponses:
Tout d'abord, vous devriez essayer
File | Invalidate Caches
et si cela n'aide pas, supprimez le répertoire système IDEA . Réimportez ensuite le projet Maven et voyez si cela aide.Dans certains cas étranges, les classes compilées peuvent rapporter des informations erronées et confondre IDEA. Vérifiez que les classes de ce fichier jar indiquent des noms corrects à l'aide de javap .
la source
L'astuce suivante a résolu ce problème pour moi:
Ma version d'idée est 12.0.4
la source
View -> Tool Windows -> Maven Projects
puis cliquez sur l'icône de flèches de cycle.Aucune des solutions ci-dessus n'a fonctionné pour moi. Ce qui a été de supprimer manuellement le fichier main.iml et cela a soudainement fonctionné.
la source
Pour les utilisateurs Gradle:
Vous devrez peut-être synchroniser votre projet avec votre
build.gradle
fichier.Vous pouvez faire un clic droit sur votre fichier gradle sous le volet Projet pour le faire, mais cela ne semble rien faire pour moi (je soupçonne un bogue dans ma version). Vous saurez si cela se produit car cela ne lancera pas les tâches IntelliJ que vous attendez. Ouvrez plutôt le volet Gradle Tool , puis cliquez sur le bouton synchronize (refresh). Cela a fonctionné pour moi où l'invalidation du cache et le redémarrage n'ont pas fonctionné.
Ma propre circonstance: j'utilisais un projet Scala avec Gradle et je devais le faire.
la source
View > Tool Windows > Gradle
mavenCentral() could not be resolved
jusqu'à ce que j'ajoute les configurations jUnit (j'avais porté un projet entier vers Gradle en créant un nouveau projet Gradle, puis en copiant tous les fichiers source).Cela a été mentionné dans une autre réponse à cette même question ici , mais cela seul corrige cela pour moi. Je fais toutes mes builds dans un terminal séparé, en dehors d'IntelliJ. Par conséquent, le cache doit disposer des autorisations appropriées définies pour que l'application IntelliJ puisse les lire.
Exécutez-le à partir du dossier racine du projet.
la source
Une étape supplémentaire, lorsque j'ai fait File -> Invalidate Caches et redémarré l'IDE, ouvrez un projet. Il a fait apparaître une boîte à pain en haut à droite me demandant s'il faut activer l'importation automatique et cela a résolu le problème.
la source
Autre chose à vérifier: assurez-vous que les dépendances ne sont pas dupliquées. Dans mon cas, j'ai trouvé qu'un module présentant ce comportement était mal configuré comme suit: il avait une dépendance sur un autre module, et il avait une dépendance sur un bocal produit par cet autre module. Cela signifiait pour chaque symbole référencé en double et était ambigu.
la source
Les noms de modules incohérents / en double dans la structure du projet étaient à l'origine de ce problème pour moi.
File -> Project Strucutre -> Modules
Cela peut se produire lorsque IntelliJ ne s'arrête pas correctement et ne peut donc pas enregistrer correctement les noms de modules renommés.
la source
Un correctif a-t-il été publié? Apparaît un problème affecté à l'origine v11 / 12 en raison d'une "révision du compilateur" en 2013. Avec une discussion sur les problèmes connexes dans Jira jusqu'à la fin de 2014. http://youtrack.jetbrains.com/issue/IDEA-98425
Également sur Jira IDEA-98425 a été marqué comme fixe mais non vérifié (sur v12.0.3). Aucun des contournements suivants 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 (Ensuite, File \ Invalidate Caches / Restart)
b. Depuis la fenêtre Projets Maven ,
b.1 mvn -U idée: idée -〉 L'exécution de cet objectif maven suppose de recharger les dépendances. Cela fonctionne avant, 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 en tant que «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 cela fonctionne
b.2 Cliquez simplement avec le bouton droit sur le projet et réimportez
b.3 Fichier \ Caches invalides / Redémarrer
c. J'ai essayé à la fois d'activer et de désactiver ce paramètre: Fichier -> Paramètres -> Maven -> Importation -> "Utiliser maven3 pour importer le projet"
ré. Settings \ Maven \ Multiproject build fail policy = Échec à la fin (au lieu de Default)
Rien ne fonctionne. Que devient le support IntelliJ sur Maven.
https://youtrack.jetbrains.com/issue/IDEA-99302
Depuis l'historique des versions de JetBeans, https://www.jetbrains.com/company/history.jsp
IntelliJ v14 NOV 2014
IntelliJ v13 DEC 2013
Je suppose que la version 12 fixe (bien que non vérifiée ) serait intégrée dans les versions ultérieures. Quelqu'un ayant des problèmes similaires avec quelle version d'IntelliJ? Veuillez partager votre expérience. Le support d'IntelliJ maven semble rompu.
la source
Ma structure de projet:
Ce qui a fonctionné:
Faites un clic droit sur le
scala
dossier, puis cliquez sur "Marquer le répertoire comme racine des sources".la source
Aucune des autres réponses n'a fonctionné pour moi. Mes importations n'ont pas été résolues car IntelliJ a signalé un mauvais fichier .m2.
Version IntelliJ: IntelliJ Idea 2018.1.5
Mon emplacement pour le répertoire .m2 a été pointé vers le mauvais chemin. Tout ce que j'ai fait pour le corriger, c'est rediriger IntelliJ vers le bon répertoire .m2 et le mettre à jour.
Tout d'abord, allez dans: Fichier-> Paramètres-> Build, Execution, Deployment-> Build Tools-> Maven
J'ai dû 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-> Build, Execution, Deployment-> Build Tools-> Maven-> Repositories
et cliquez sur le bouton Mettre à jour.
la source
Pour une autre alternative.
J'ai également eu ce problème lorsque 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 (c'était JDK7_45), et définissez le JDK d'Intellij sur le nouveau, et cela fonctionne.
la source
Je viens d'avoir ce problème et il ne disparaîtrait pas. J'ai finalement effacé le répertoire de configuration IntelliJ
~
et reconstruit mon projet IntelliJ à partir de zéro. (Cela n'a pris qu'environ 15 minutes à la fin, par rapport à passer une heure à essayer de résoudre les problèmes avec les fichiers mis 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 depuis le moment où cette réponse a été écrite pour la première fois). problème d'espace disque / mémoire provoquant le plantage de Java. IntelliJ semblait simplement corrompu.la source
Si votre projet maven est un projet multi-modules, vérifiez si certains modules sont ignorés par intellij.
gs-multi-module
dans l'image suivante).Unignore Projects
.Ensuite, attendez qu'intellij termine l'indexation, après quoi cela fonctionnera.
la source
Oui, on dirait que vous devez créer des bibliothèques contenant les fichiers JAR dont vous avez besoin et les ajouter en tant que dépendance dans votre module.
la source
Après avoir invalidé mon cache et redémarré; et confirmant que mes paramètres maven étaient corrects, je voyais toujours "Impossible de résoudre le symbole" pour un module que j'avais définitivement défini comme une dépendance. Il s'avère que je l'avais réglé sur une mauvaise portée.
Vous pouvez vérifier en cliquant avec le bouton droit sur votre module et en sélectionnant Ouvrir les paramètres du module. Cliquez sur l'onglet de dépendance et vérifiez que l'étendue de votre dépendance non résolvable est définie sur Compiler.
la source
La réimportation du projet a fonctionné pour moi. Clic droit sur Projet -> Maven -> Réimporter
quand j'ai fait File -> Invalidate Caches et redémarré l'IDE, ouvrez un projet. Il a montré une boîte de dialogue en haut à droite "Les changements Maven détectés" et a donné une option pour importer et activer l'importation automatique. Même après avoir importé le projet ici, j'ai eu le même problème. L'étape ci-dessus a résolu le problème.
la source
Parfois, j'ouvre simplement la structure du projet, je clique sur le projet, puis je choisis une version du SDK .
la source
Dans mon cas, j'essaie d'ouvrir un projet de démarrage de printemps à partir d'IntellijIdea a le même problème que l'impossibilité d'importer tous les fichiers liés au printemps.
Ensuite, j'ai fait:
Maintenant, tout fonctionne bien comme prévu.
J'ai vu beaucoup de réponses ici mais j'ai finalement trouvé cette solution. Il peut être utile pour quelqu'un comme moi.
la source
Dans mon cas, seul buildDir est supprimé. Dans ce cas,
File | Invalidate Caches
ne fonctionne pas.Quand je le fais
Build | Make Project
avantFile | Invalidate Caches
, tout fonctionne bien.la source
la source
Aucune des solutions ci-dessus ne l'a résolu pour moi. J'ai eu le même problème où le code s'est bien compilé 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 était de tout déplacer vers le package par défaut, de supprimer le
com.foo.bar
package, puis de le recréer et de tout replacer.la source
Les solutions suggérées n'ont pas fonctionné. Je devais ignorer plusieurs projets, en faisant un clic droit sur le projet pom => maven => unignore.
Puis après un
dans la console, IntelliJ était de nouveau heureux. Aucune idée de la façon dont les projets ont été ignorés ...
la source
mvn idea:idea
travaillé pour moi. Je l'ai trouvé ici . J'ai passé plus d'une heure, j'espère que cela aide quelqu'unla source
Supprimez le fichier: iml trouvé dans les dossiers java et test à l'intérieur du projet et invalidez et redémarrez.
Il me sera demandé si je peux supprimer les projets. Mettez Oui. L'erreur disparaîtra.
la source
Ce qui a fonctionné pour moi, c'était de "Marquer comme racine de la source du répertoire" le répertoire dans lequel se trouvait la classe marquée en rouge, après quoi la marque rouge a disparu. Semble que pour une raison quelconque, il n'était pas marqué.
la source
Pour les projets Gradle:
<problematic-project-root>/.idea
répertoire<problematic-project-root>/.gradle
répertoire.iml
fichiers de<problematic-project-root>
DEL /S /Q *.iml
find . | grep -e .iml$ | xargs rm
la source
si projet maven alors allez simplement dans les paramètres -> outils de construction -> maven -> importation. cochez la case "importer automatiquement le projet maven". va résoudre le problème.
la source
Les caches invalides ont fonctionné pour moi, mais après avoir exécuté l'application, la même erreur s'est produite.
J'ai donc essayé ( Intellij ):
1 - Barre de menus - Refactor | Construire | Run | Outils - cliquez sur Build puis Rebuild Project
2 - MVN propre
3 - Faites un clic droit sur le projet> Maven> Générer des sources et mettre à jour le dossier
J'espère que cela fonctionne pour toi.
Merci
la source
Ou peut-être que le fichier que vous importez est trop volumineux. C'est mon cas, lorsque je change la propriété Intellij: iead.max.intellisen.filesize (le chemin est $ {idée dir} /bin/idea.properties) en une valeur plus grande, comme 25000 et redémarrez l'IDE, le problème a disparu. J'espère que cela t'aides.
la source