webentwicklung-frage-antwort-db.com.de

Das Maven-Paket funktioniert, aber der Build von Intellij schlägt fehl

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:

  • Ungültiger Cache
  • 'mvn clean install' das lokale Jar-Dependecy
  • Zum automatischen Laden von Schnappschüssen in der Maven-Konfiguration von Intellij
  • Repimpoted Maven in Intellij
  • Syncornized

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.

52
Yarin Miran

Ich habe herausgefunden, dass meine .iml-Datei und mein pom in Konflikt standen und das Problem verursachen.

10
Yarin Miran

Ich weiß, dass dies zu spät ist, aber mvn idea:idea löst das Problem. 

78
Rahul Jha

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.

22
masoodg

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.

13
rrjp

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.

3
Optimiser

Maven ReImport arbeitete für mich wie folgt ...

 enter image description here

3
Ram Ghadiyaram

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

2
Akshayraj Kore

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 

2
Bikas Katwal

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

1
dgm

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

1
Ram Maddela

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

0
Togepi

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.

0
Denorm

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.

0
poorguy

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.

0
Anubha

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.

0
Boris Mitioglov

Diese einfache Prozedur dauert etwa 1 Minute ohne Risiko. 

  • Schließen Sie IntelliJ
  • Löschen SieONLYdie IntelliJ-spezifischen Dateien wie .idea/*, * .iml, .settings usw. Vorgeschlagen war auch das Löschen des POM, dies ist jedoch IMHO nicht erforderlich. 
  • Erstellen Sie dann das Projekt in IntelliJ erneut, indem Sie Folgendes verwenden: Datei > Neu> Projekt aus vorhandenen Quellen> Befolgen Sie die Schritte. Achten Sie darauf, NICHT mehrere Profile oder (gleiche Projekte) zu importieren. 
0
tjm1706

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.

0
Emma

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

 enter image description here

0

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

0

Wenn Sie Gradle verwenden, versuchen Sie es mit dem folgenden Befehl. Dadurch wurde mein Problem behoben

gradle cleanIdea idea

0
Liju John