Ich habe ein JDK 1.7-Projekt mit einer Maven-Abhängigkeit zu einem lokalen Glas in meinem Maven-Repo.
Ich kann das Projekt nicht mit Intellij erstellen, mit der Fehlermeldung, dass ein Symbol nicht gefunden werden kann (das Symbol ist eine Klasse, die Pakete aus der lokalen Dose importiert).
Ich kann das Projekt jedoch erfolgreich mit 'mvn package' erstellen.
Ich habe so viel Zeit damit verbracht, nach Lösungen zu suchen, Dinge, die ich bereits getan habe:
Dieser Fehler passierte bei meinen letzten paar Male, aber in der Regel wurde nur der Intellij geschlossen und/oder die "mvn clean install" durchgeführt.
Bitte helfen.
Ich habe herausgefunden, dass meine .iml-Datei und mein pom in Konflikt standen und das Problem verursachen.
Ich weiß, dass dies zu spät ist, aber mvn idea:idea
löst das Problem.
Versuchen Sie, alle .iml und Ihr POM zu löschen ..__ Kopieren Sie anschließend Ihr POM erneut in Ihr Projekt, fügen Sie es erneut ein, öffnen Sie es und importieren Sie es erneut.
Weitere Tipps hinzufügen, da dies das erste war, das bei der Suche aufkam, als ich ähnliche Probleme hatte (Projekterstellung in mvn, nicht in IntelliJ), falls es jemand anderem helfen könnte.
Als ich dies hatte, war es ein anderes Update für Windows und Mac.
Auf dem Mac habe ich in ItellijIDEA/Preferences/Build, Execution, Deployment/Build Tools/Maven/Maven Home Directory gegangen und habe es so eingestellt, dass es mein separat installiertes Maven anstelle des im Lieferumfang enthaltenen Maven verwendet. Alle Bauprobleme gingen weg.
Unter Windows sah ich im idea.log Ausnahmen in Bezug auf SSL und mein Projektbaum hatte nur Java unter dem Zweig External Libraries. Wenn Sie sich andere Websites ansehen, scheint es, als würde IntelliJ ein eigenes privates JDK anstelle des Systems verwenden (obwohl in meinem Fall bereits die gleiche JDK-Version installiert war). In meinem System-JDK sind im Keystore des zentralen Nexus-Servers Zertifikate installiert, über die das private JDK von IntelliJ nicht verfügte. Aus diesem Grund wurden Ausnahmen ausgelöst, als versucht wurde, Dateien von Nexus abzurufen. Zu diesem Zweck bestand die Lösung darin, IntelliJ zu beenden, eine Umgebungsvariable namens IDEA_JDK zu setzen, die auf das bereits installierte JDK verweist, das die richtigen Zertifikate hatte, und IntelliJ neu zu starten. Alle Bauprobleme gingen weg.
Ich weiß, dass ich zu diesem Gespräch ziemlich spät komme, wollte dies aber nur posten, falls jemand anderes auf dieses Problem stößt. Ein weiterer Grund dafür ist, dass Sie sich nicht auf das richtige Repository beziehen. Intellij nimmt standardmäßig die gebündelte Version einer Dose statt derjenigen aus Ihrem eigenen Maven-Repository auf. Stellen Sie sicher, dass das verbundene Repository das richtige ist.
Bei Builds verwendet IDE eine eigene, gebündelte Kopie von Maven. Wenn maven on terminal sich von IDE unterscheidet, möchten Sie, dass sie identisch sind.
GOTO (Auf einem Mac) - IntelliJ-Idee -> Voreinstellungen -> Erstellen, Ausführen, Bereitstellen -> Build-Tools -> Maven. Geben Sie den Pfad für Ihr Maven-Home-Verzeichnis An. Um den Pfad für Maven zu finden, den Sie vom Terminal aus verwenden, geben Sie den Befehl mvn -version
ein. Daraufhin werden eine Reihe von Details einschließlich des Verzeichnispfads ausgegeben. Setzen Sie das in Maven Home Directory.
Um sicher zu gehen, können Sie dasselbe für den JDK-Standort tun
==== Andere Dinge, die solche Probleme verursachen können ===
Wenn Sie mvn package oder mvn clean install builds ausführen, müssen Sie etwas mit IDE - Caches tun .. __ Dieses hilft unter anderem bei solchen Fehlern ->
Datei -> Caches ungültig machen
In meinem Fall war mein IML nicht synchron. Daher löschte ich das IML für das spezifische Modul und wählte dann unter Maven die Option Unignore-Projekt zum Wiederherstellen von IML aus
"Symbol kann nicht gefunden werden" bedeutet, dass intellij die "Abhängigkeit" nicht auflösen kann. Sie können "Abhängigkeitsanalyse" erzwingen, indem Sie auf "Analysieren" -> "Abhängigkeiten analysieren" klicken und dann den "Analyseumfang" auswählen.
aus der Eingabeaufforderung den Befehl ausführen: mvn idea:idea
und mit der rechten Maustaste auf das Projekt klicken -> aus dem Menü die Abhängigkeiten erneut importieren
Ich habe das Projekt geschlossen und erneut importiert, indem Sie auf das Root-Pom geklickt haben (nicht nur den Ordner, sondern die POM-Datei selbst).
Ich hatte das gleiche problem Gehe zu:
Datei -> Projektstruktur -> Modul. Wählen Sie Ihr Modul und stellen Sie unter "Dependencies" sicher, dass alle Maven-Abhängigkeiten hinzugefügt wurden.
Um sicherzustellen, dass Sie über ein ähnliches Problem im Ideeneditor gewarnt werden, wechseln Sie von der Registerkarte "Abhängigkeiten" zu "Quellen" und markieren Sie Ihren Quellcode als Quelle.
Es gibt auch eine Möglichkeit, die nicht erwähnt wurde. Wenn Sie eine Bibliothek aus com.Sun.*
importieren. Es wird auch dieses Problem verursachen.
Programme funktionieren, wenn sie in ide ausgeführt werden, da sich diese Klassen in com.Sun.*
alle im Verzeichnis jre/lib
befinden und beim Ausführen geladen werden. Wenn Sie jedoch mvn package
ausführen, sind diese Bibliotheken aufgrund der Einschränkungen von Oracle seit Java 1.6 nicht mehr verfügbar (diese Bibliotheken wurden in gewisser Weise verworfen). Um dieses Problem zu lösen, können Sie hinzufügen
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<verbose />
<bootclasspath>C:/Program Files/Java/jdk1.8.0_161/jre/lib/rt.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
denken Sie daran, den Cootclass-Pfad durch Ihren eigenen Pfad von rt.jar
zu ersetzen.
Sie können Access restriction: The type XXX is not accessible due to restriction on required library
nach weiteren Einzelheiten durchsuchen.
Ich habe versucht, den Cache ungültig zu machen, den Maven auf die installierte Version umzustellen und nichts hat funktioniert.
Das Schließen und Wiederherstellen eines neuen Projekts hat es gelöst.
Ich hatte das gleiche Problem. Ich habe die Maven-Version von 3.0.5 auf 3.0.4 in den Idea-Einstellungen geändert und alles funktioniert jetzt einwandfrei. Ich weiß nicht, warum das mir hilft.
Diese einfache Prozedur dauert etwa 1 Minute ohne Risiko.
Ich habe alles oben ohne Freude ausprobiert. Ich habe jedoch eine Sache gemacht, die es endlich zum Laufen brachte:
Ich ging zu C:\Users\.IntellijJIdea2018.2 und löschte gerade den gesamten Ordner.
Es entfernt alle Einstellungen und den Cache für IntelliJ. Ich musste mein Projekt von Grund auf neu importieren, aber ein einfaches Entfernen und erneutes Importieren hatte zuvor nicht funktioniert, aber es hat endlich wieder funktioniert.
Viele wertvolle Tipps in den anderen Antworten hier, möchten nur die Lösung hinzufügen, die für mein Problem funktionierte.
Wir haben vor kurzem begonnen, ein privates Maven-Repository zu verwenden, und machen immer mvn -s settings.xml
, wenn Sie die Maven-Cmdline aufrufen. IntelliJ weiß natürlich nichts über das private Repo, daher braucht es etwas Hilfe.
Gehen Sie zu Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Erstellungstools -> Maven und überschreiben Sie die Option "Benutzereinstellungsdatei".
Löschen Sie den .idea-Ordner und schließen Sie die IDE
öffnen Sie das IDE erneut und importieren Sie das Projekt, das einen Neuimport durchführt, da der .IDEA-Ordner zuvor von uns gelöscht wurde
Überprüfen Sie das externe Bibliotheksmodul und, falls es nicht mit den erforderlichen Abhängigkeiten gefüllt ist, ob der Speicherort der Datei maven settings.xml in der IDE korrekt angegeben ist
Wenn Sie Gradle verwenden, versuchen Sie es mit dem folgenden Befehl. Dadurch wurde mein Problem behoben
gradle cleanIdea idea