Fehlende Maven-Abhängigkeiten im Eclipse-Projekt

108

Wir haben ein Projekt mit maven zur Lösung von Abhängigkeiten eingerichtet. Normalerweise funktioniert es gut, aber jetzt versuche ich, es auf einem neuen PC zu kompilieren und auszuführen, und ich habe Probleme mit fehlenden Abhängigkeiten in Eclipse.

Was lustig ist, ist, dass wenn ich "mvn package" in der Konsole oder in Eclipse starte, es gut funktioniert und sogar Krieg erzeugt, der alle notwendigen Gläser enthält. Nur Eclipse beschwert sich mit "Das Projekt wurde nicht erstellt, da sein Erstellungspfad unvollständig ist. Die Klassendatei für org.slf4j.Logger kann nicht gefunden werden ...". Wenn ich das Projekt mit einem anderen Computer vergleiche (auf dem das Projekt einwandfrei funktioniert), stelle ich fest, dass in der Liste "Maven-Abhängigkeiten" in Eclipse einige Bibliotheken fehlen. Obwohl sie sich im Krieg befinden und sich auch im Repository-Ordner befinden.

Die Jars sind also da, nur Eclipse listet sie nicht alle unter "Maven-Abhängigkeiten" auf. Was kann ich tun?

Der Computer läuft unter Windows 7 mit 64-Bit-Java und Eclipse.

hostnik
quelle
Handelt es sich um ein Scope-Problem wie in jira.codehaus.org/browse/MNG-2045 ?
VonC
1
Es lohnt sich nicht, eine Antwort zu veröffentlichen, aber für alle, die dies in Zukunft lesen, müssen Sie mindestens drei Zeichen ohne Platzhalter eingeben. Wenn Sie beispielsweise "t" oder "to" eingeben, werden keine Ergebnisse angezeigt, "tom" jedoch. Ob Sie es glauben oder nicht, ich habe ungefähr eine Stunde lang nach verschiedenen Gründen gesucht, bevor ich das realisiert habe.
Chris Neve

Antworten:

117

Nun, ich habe alles versucht, was hier gepostet wurde, leider funktioniert in meinem Fall nichts. Als ich verschiedene Kombinationen ausprobierte, kam ich mit dieser heraus, die mein Problem löste.

1) Öffnen Sie die .classpath- Datei im Stammverzeichnis Ihres Eclipse-Projekts.

2) Fügen Sie den folgenden Eintrag in die Datei ein:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

Erstellen Sie dann Ihr Projekt bei Eclipse neu (Projekt-> Clean-Build). Sie können jetzt im Java-Erstellungspfad Ihres Projekts auf der Registerkarte Bibliotheken die enthaltenen Maven-Abhängigkeiten überprüfen: Geben Sie hier die Bildbeschreibung ein

Ualter Jr.
quelle
3
Dies ist das erste, was jeder versuchen sollte. Öffnen Sie die .classpath-Datei, die sich in Ihrem Projektverzeichnis befindet, mit dem Editor, fügen Sie die genannten Zeilen hinzu und aktualisieren Sie Ihr Projekt.
Amit Kumar
9
Dies funktionierte dort, wo alles andere fehlschlug. Aber muss ich das für jedes Projekt tun, das ich erstelle? Warum funktioniert es nicht automatisch? Was ist das eigentliche Problem?
yeaaaahhhh..hamf hamf
Seufz, das ist in m2e 1.6.2.20150902-002 noch kaputt. Getestet mit einer neuen Vanilla Eclipse-Installation unter Mac OS X / JDK 1.8. Eclipse IDE für Java-Entwickler Version: Mars.2 Release (4.5.2) Build-ID: 20160218-0600 Ich frage mich, ob für dieses Plugin Eclipse Java EE ordnungsgemäß funktioniert.
Mat Gessel
1
Diese Antwort sollte die erste sein. Der einzige, der funktioniert hat ;-) Danke
Manuel Manhart
1
Magie! noch gültig für Eclipse 4.4.2
versvs
89

Problem gelöst!

Ich weiß nicht genau, was es gelöst hat, aber ich habe 4 Dinge in Eclipse getan:

  • Fenster-> Einstellungen: Maven-> Installationen: Globale Einstellungen -> Datei öffnen und localRepository fest codieren
  • Projekt-> Reinigen
  • Klicken Sie mit der rechten Maustaste auf Projekt: Maven-> Abhängigkeiten aktualisieren
  • Klicken Sie mit der rechten Maustaste auf Projekt: Maven-> Projektkonfiguration aktualisieren

Ich denke, es waren die Update-Abhängigkeiten, da direkt nach den ersten beiden keine Änderungen vorgenommen wurden.

hostnik
quelle
2
Ich kenne "Project-> Clean" und habe es versucht, aber es hat zuerst nicht geholfen.
Hostnik
7
Es war der letzte Punkt. Durch die Aktualisierung der Projektkonfiguration wird Ihrem Projekt eine Bibliothek "Maven Dependencies" hinzugefügt.
Eduard Wirch
2
Zu Ihrer Information, ich musste zuerst mit der rechten Maustaste auf mein Projekt klicken, zu Konfigurieren und "In Maven-Projekt konvertieren" gehen.
Duma
2
Um die Antwort von Eduard Wirch zu erweitern, musste ich auch das Kontrollkästchen "Aktualisierung von Snapshots / Releases erzwingen" im Fenster "Maven-> Projekt aktualisieren ..." aktivieren. Mein fehlendes Artefakt war ein Schnappschuss und wurde irgendwie nicht gut aktualisiert, ohne es zu erzwingen.
evaldeslacasa
1
Ich musste die Benutzereinstellungen 'settings.xml' so ändern, dass sie sich in meinem '.m2'-Verzeichnis befinden. Es wurde zuvor unter dem Maven-Installationsverzeichnis auf eins gesetzt.
Jack Straw
34

Ich bin auch neu in Eclipse und habe ein ähnliches Problem, bei dem Eclipse eine Importanweisung einfach nicht erkennt, obwohl alle Anzeichen darauf hinweisen, dass die Abhängigkeit erfolgreich heruntergeladen wurde.

Sie sollten überprüfen, ob Ihre Abhängigkeitsdatei tatsächlich heruntergeladen wurde, indem Sie in die Befehlszeile gehen und eingeben

mvn dependency:tree

Wenn Sie Ihr Paket dort sehen, aber Eclipse es nicht bestätigt, funktioniert es (manchmal) für mich, zum Terminal zu gehen, eine CD in den Projektordner zu schreiben und einzugeben

mvn eclipse:clean dann mvn eclipse:eclipse

Aktualisieren Sie schließlich das Projekt in Eclipse

Ich weiß nicht, warum das funktioniert, und manchmal funktioniert es nicht einmal, dann funktioniert es wieder ... also einen Versuch wert!

rogueleaderr
quelle
Dies zeigte mir die richtige Richtung, indem es mir zeigte, dass es Probleme mit meiner settings.xml-Datei gab! Vielen Dank, @rogueleaderr!
Slashp
Ja, es hat bei meiner Freundin funktioniert und all ihre Probleme und Kopfschmerzen gelöst. Hat bei mir leider nicht funktioniert.
Zack Zilic
Es hat auch bei mir funktioniert, aber könnte jemand erklären, was hinter den Kulissen passiert ist?
YouAreAwesome
31

Mein Projekt wurde nur vermasselt. So habe ich es für Eclipse Indigo x64 (J2EE 3.7.3) behoben:

  1. Meine POM-Datei gelöscht (natürlich gesichert).
  2. Projektkontextmenü > Maven > Maven Nature deaktivieren .
  3. Das Projekt wurde gelöscht (aber kein Inhalt auf der Festplatte).
  4. Neu importiert als Import > Allgemein > Vorhandenes Projekt .
  5. Projektkontextmenü > Konfigurieren > In Maven-Projekt konvertieren ... .
  6. Akzeptieren Sie die Standardeinstellungen des Maven-Assistenten.
  7. Überschreiben Sie POM mit Ihrem gesicherten POM. (Jetzt haben Sie den Ordner Maven Dependencies ).
  8. Maven Update / Clean für ein gutes Maß.

Hoffe das hilft jemandem. :) :)

Joseph Lust
quelle
Das hilft mir! Ich weiß nicht, was los ist, aber ich verwende 64-Bit-Juno / Springsource 3 und es kann meine Maven-Projekte immer nicht korrekt importieren. Wenn ich als reguläres Projekt auschecke, mein POM umbenenne und dann ab Schritt 5 Ihren Anweisungen folge, funktioniert es. Andernfalls werden durch nichts, was ich versuche, die Maven-Abhängigkeiten zu meinem Projekt hinzugefügt, abgesehen von der Befehlszeile, mvn eclipse:eclipsedie einfach schrecklich ist.
ngreen
Ich habe dies getan, aber ich habe immer noch nicht den Ordner mit den Maven-Abhängigkeiten. Hier ist meine pom.xml-Datei und ich denke, deshalb habe ich dieses Problem: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>antlr.tuto.calco</groupId> <artifactId>CalculatriceAntlr</artifactId> <version>0.0.1-SNAPSHOT</version> </project>
Anatch
Ich weiß wirklich nicht, wo das Problem liegt, aber ich habe die obigen Schritte befolgt und es funktioniert wirklich gut. Es verursacht Fehler wie Klasse nicht gefunden, xml dtd nicht gefunden. Aber jetzt ist es gelöst. Danke Kumpel. Upvote.
Sagar007
29

Ich hatte dieses Problem für Abhängigkeiten, die in anderen Projekten erstellt wurden. Heruntergeladene Abhängigkeiten von Drittanbietern wurden im Erstellungspfad angezeigt, jedoch nicht in einer von mir erstellten Bibliothek.

SOLUTION: In dem Projekt, das nicht richtig erstellt wird,

  • Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften und dann Maven.

  • Deaktivieren Sie das Kontrollkästchen " Abhängigkeiten von Workspace-Projekten auflösen ".

  • Klicken Sie auf Übernehmen und dann auf OK.

  • Klicken Sie erneut mit der rechten Maustaste auf Ihr Projekt und führen Sie einen Maven-> Update-Snapshots (oder Update-Abhängigkeiten) durch.

Und Ihre Fehler sollten verschwinden, wenn Ihr Projekt neu erstellt wird (automatisch, wenn Sie die automatische Erstellung aktiviert haben).

IceBox13
quelle
Danke, das hat mein Problem gelöst. Scheint darauf hinzudeuten, dass es sich um einen Eclipse-Fehler handelt.
Scott McIntyre
1
Hey, es gibt keine Maven-> Update Snapshots (oder Update Dependencies). Wenn ich mit der rechten Maustaste klicke, gibt es keine Maven-Option? Wo befindet sich das, was Sie beschrieben haben? Ich suche, kann aber keine Beschreibung finden, nachdem Sie auf Anwenden
DarioBB
1
@DarioBB Diese Antwort ist fast 5 Jahre alt. Ich habe seit über einem Jahr nicht mehr in Eclipse gearbeitet. Ich habe keine Ahnung, ob diese Option noch verfügbar ist oder nicht. Ich bin möglicherweise nicht in der neuesten Version.
IceBox13
1
Diese Lösung hat bei mir in Eclipse Neon funktioniert. Führen Sie anschließend Maven> Projekt aktualisieren (nicht Snapshots aktualisieren) aus.
Ivana
9

Nun, ich habe alles versucht, was hier gepostet wurde, leider funktioniert in meinem Fall nichts. Als ich verschiedene Kombinationen ausprobierte, kam ich mit dieser heraus, die mein Problem löste.

1) Öffnen Sie die .classpath- Datei im Stammverzeichnis Ihres Eclipse-Projekts.

2) Fügen Sie den folgenden Eintrag in die Datei ein:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

Erstellen Sie dann Ihr Projekt bei Eclipse neu (Projekt-> Clean-Build).

Ualter Jr.
quelle
Vielen Dank! Diese Lösung funktionierte am besten für mich, nur eine Korrektur schwierig, ich musste das Projekt schließen und erneut öffnen.
Tarun Gupta
Wunderbar. Das hat auch bei mir funktioniert. In meinem Projekt konnte ich keine Maven-Abhängigkeiten erkennen. Jetzt sichtbar und auch zum Build-Pfad hinzugefügt. Vielen Dank!
Tahir Mehmood
7

Nur für den Fall, dass jemand alle anderen Optionen ausprobiert hat und Sie immer noch nicht weiterkommen, klicken Sie mit der rechten Maustaste auf den Projektordner, gehen Sie zur Option Maven und klicken Sie auf die Schaltfläche "Abhängigkeit hinzufügen". Aus irgendeinem Grund aktualisiert Eclipse die Abhängigkeiten beim ersten Versuch nicht manuell aus der Datei pom.xml .

Screenshot der Menüauswahl

FrankDupree
quelle
5

Ich hatte ein ähnliches Problem. Ich löste es durch die Lauf Maven-> Update Projektkonfiguration Aktion

Darryl Sibeon
quelle
5

Für mich war das Problem, dass maven die Datei settings.xml in myMavenFolder \ conf nicht finden konnte .

Um das Problem zu beheben, habe ich in Eclipse den richtigen Speicherort für die Datei settings.xml ausgewählt:
Fenster -> Einstellungen -> Maven -> Benutzereinstellungen

Klicken Sie abschließend auf Übernehmen und aktualisieren Sie Ihr Projekt

I. YOCK
quelle
4

Ich bin also ungefähr 4 oder 5 Jahre zu spät zu dieser Party, aber ich hatte dieses Problem, nachdem ich aus unserem Repo gezogen hatte, und keine der anderen Lösungen aus diesem Thread hat in meinem Fall funktioniert, um diese Warnungen / Fehler zu beseitigen.

Das hat bei mir funktioniert:

Gehen Sie von Eclipse zu Fenster -> Einstellungen -> Maven (erweitern) -> Fehler / Warnungen. Die letzte Option lautet "Plugin-Ausführung wird nicht von der Lebenszykluskonfiguration abgedeckt". Verwenden Sie das Dropdown-Menü für diese Option und schalten Sie "Ignorieren", dann "Übernehmen" und dann "OK" um. (Bei der Aufforderung "Aktualisierung von Maven-Projekten erforderlich" sagen Sie "OK").

Weitere Informationen:

Dies muss möglicherweise nicht unbedingt die zugrunde liegenden Probleme "beheben" und wird von einigen möglicherweise nicht als "Best Practice" eingestuft. Diese Warnungen sollten jedoch entfernt / unterdrückt werden, damit sie nicht in Eclipse angezeigt werden, und Sie können zumindest vorwärts gehen. Insbesondere habe ich mit Eclipse Luna Service Release 1 (4.4.1) mit Spring Dashboard und Spring IDE Core (3.6.3) gearbeitet und m2e (1.5) unter Arch Linux und OpenJDK 1.7 installiert. Ich habe mein Projekt als vorhandenes Maven-Projekt importiert und OK ausgewählt, wenn ich vor vorhandenen Warnungen / Fehlern gewarnt wurde (um sie später zu behandeln).

Unterdrücken / Entfernen der Warnungen "Plugin-Ausführung nicht abgedeckt ..." Eclipse-Maven

(Entschuldigung, ich bin kein Designer, habe aber der Übersichtlichkeit halber ein Bild hinzugefügt.)

Brandon K.
quelle
4

Für die folgenden Schritte hat in meinem Fall gearbeitet:

1 Klicken Sie bei Eclipse mit der rechten Maustaste auf das gewünschte Projekt Maven -> Maven Nature deaktivieren

2 Klicken Sie erneut mit der rechten Maustaste und gehen Sie zu Eigenschaften . Löschen Sie alle Hinweise auf eine externe Maven-Abhängigkeit, und lassen Sie nur die JRE-Systembibliothek übrig.

3 Klicken Sie noch einmal mit der rechten Maustaste auf das Projekt und gehen Sie dann zu Konfigurieren -> In Maven-Projekt konvertieren

Rafael Isquierdo
quelle
3

Keine der oben genannten Lösungen hat für mich funktioniert, daher ist diese Antwort für alle anderen in meiner Situation. Ich fand das Problem schließlich selbst und eine andere Lösung. Die Datei pom.xml enthielt ein dependencyManagement-Tag, das die Abhängigkeiten umhüllte, und M2Eclipse fügte den Ordner Maven Dependencies nicht hinzu, wenn dies vorhanden war. Also entfernte ich dieses Tag, führte dann die von Ualter Jr. angebotene Lösung aus und Eclipse fügte sofort den fehlenden Ordner hinzu!

Paul Crease
quelle
3

Hier sind die Schritte, denen ich gefolgt bin.
1. Maven-Projekt aus Eclipse gelöscht.
2. Löschte alle Dateien (.setting / .classpath / target) außer src und pom aus meinem Quellordner .
3. erneut als Maven-Projekt importiert
4. erneut erstellen, Sie sollten in der Lage sein, Maven-Abhängigkeiten zu sehen.

Karuna Nidhan
quelle
2

Meine Antwort ähnelt der von @JerylCook: Suchen Sie eine andere .classpathDatei in einem funktionierenden Maven-Projekt und bearbeiten Sie Ihre schlechten als die guten funktionierenden. Der Schlüssel ist hinzuzufügen

<attributes>
    <attribute name="maven.pomderived" value="true"/>
</attributes>

in jedem <classpathentry>Typ conund src. Vergessen Sie nicht , sich ändern <classpathentry .... />zu <classpathentry ...>xxx</classpathentry>.

Aktualisieren Sie zuletzt das Maven-Projekt und installieren / erstellen Sie es in Maven neu.

WesternGun
quelle
Das hat es für mich getan. Vielen Dank.
NuCradle
1

Wenn nach dem Ausführen von Maven -> Update Project Configuration (oder in Juno "Update Configuration ...") Fehler "verschachtelte Pfade" auftreten, ist Ihr Erstellungspfad falsch konfiguriert.

Klicken Sie mit der rechten Maustaste auf Projekt -> Erstellungspfad -> Erstellungspfad konfigurieren

Stellen Sie sicher, dass nur '/ src' und Verzeichnisse auf dieser Ebene enthalten sind. Wenn Sie zB '/ src' und auch '/ src / main / resources' haben, ist dies falsch. Die zweite Ressource ('/ src / main / resources') ist unter der ersten ('/ src') "verschachtelt", was dazu führt, dass Sie keine Ressourcen importieren können, da Eclipse keine Maven-Abhängigkeiten erkennt.

KomodoDave
quelle
1

Mein Problem klingt ähnlich, daher werde ich die Diskussion ergänzen. Ich hatte den Import eines vorhandenen Maven-Projekts in Eclipse abgebrochen, was dazu führte, dass es nicht aktualisiert werden durfte und das Work Space-Gebäude nicht ordnungsgemäß fertiggestellt wurde.

Was ich tun musste, um das Problem zu beheben, war Auswahl Run As... -> Maven build...und unter Ziele, die ich eingegeben habedependency:go-offline und ausgeführt.

Dann habe ich mit der rechten Maustaste auf das Projekt geklickt Maven -> Update Project...und dieses bestimmte Projekt ausgewählt und aktualisiert.

Dadurch konnte es schließlich die Quellordner erstellen und den Import beenden.

Walisisch
quelle
1

Ich könnte den Fehler beheben durch 1) Rechtsklick (Ihr Maven-Projekt) -> Maven -> Maven installieren

Nach erfolgreicher Installation

2) Klicken Sie mit der rechten Maustaste (Ihr Maven-Projekt) -> Maven -> Projekt aktualisieren. Und der ganze Fehler von Maven wurde gelöst!

Nandan Bhalwankar
quelle
1

Für mich war es ausreichend, einen buildCommand (org.eclipse.m2e.core.maven2Builder) und eine Natur (org.eclipse.m2e.core.maven2Nature) wie folgt in die .project-Datei einzufügen:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>iText</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>

und ich hatte Geben Sie hier die Bildbeschreibung ein

Frizz1977
quelle
1

So habe ich es gelöst

  • Fenster-> Einstellungen: Maven-> Benutzereinstellungen (Klicken Sie im daraufhin angezeigten Fenster auf "Datei öffnen" oder bearbeiten Sie die Datei settings.xml einfach mit einem externen Texteditor wie Notepad). Stellen Sie sicher, dass localRepository (das in diesem Fenster angezeigt wird) korrekt ist. Ich hatte einen Tippfehler in meiner Datei.
  • Wenn Sie die Datei settings.xml korrigiert haben, klicken Sie auf Einstellungen aktualisieren. Dies erfolgt im selben Bildschirm Einstellungen-> Maven-> Benutzereinstellungen.

Jetzt neu erstellen und die neuesten JARs am richtigen Speicherort installieren.

guyland123
quelle
1

Ich hatte ein ähnliches Problem und habe alle Antworten in diesem Beitrag ausprobiert. Am nächsten an der Lösung dieses Problems war die Kombination der Lösungen von Joseph Lust und Paul Crease. Ich habe die gesicherte Datei pom.xml nach dem Löschen und erneuten Importieren des Projekts hinzugefügt, und es wurde nichts angezeigt, bis ich das Abhängigkeitsverwaltungs-Tag in der Datei pom.xml gelöscht habe und der Abhängigkeitsordner auf magische Weise vorhanden war.

Die untergeordneten POMs wurden jedoch aufgelöst, da sie das übergeordnete Abhängigkeitsmanagement pom.xml benötigen, um zu funktionieren. Infolgedessen funktionierte mein MVN im Projekt weder über Eclipse noch über die Befehlszeile ordnungsgemäß, was zu einem fehlerhaften pom.xml-Fehler führte.

Die letzte Lösung, wenn alles fehlschlägt, besteht darin, die für Ihr Projekt benötigten JAR-Dateien manuell zu importieren. Klicken Sie mit der rechten Maustaste auf die Projekteigenschaften -> Java-Erstellungspfad -> Bibliotheken und fügen Sie ein externes Jar hinzu.

Wenn Ihr MVN über die Befehlszeile ordnungsgemäß funktioniert und Sie das Projekt erfolgreich erstellt haben, befinden sich alle erforderlichen Repos in Ihrem Ordner .m2 / repository. Wenn Sie alle externen Gläser hinzufügen, die in Ihrem Abhängigkeits-Tag von pom.xml erwähnt sind, wird in Ihrer Eclipse ein Bibliotheksabschnitt angezeigt, auf den verwiesen wird, und alle lästigen roten Fehler sind verschwunden.

Dies ist nicht die optimale Lösung, aber Sie können in Eclipse ohne Fehler fehlender Abhängigkeiten arbeiten und das Maven-Projekt sowohl über Eclipse als auch über die Befehlszeile erstellen.

Saad
quelle
1

Das gleiche Problem ist mir passiert, und es lag daran, dass beim Herunterladen eines JARs aufgrund von Repo-Problemen ein Fehler aufgetreten ist, der durch eine rote Fahne im angezeigt wird pom.xml .

Ich habe ein weiteres Repository hinzugefügt, damit die rote Fahne im pom.xmlverschwunden ist und Eclipse den POM erneut geladen, das Problem behoben und die Maven-Abhängigkeiten im Projektexplorer aufgelistet hat. Es klingt einfach und offensichtlich, sichtbare Probleme zu lösen, aber da Eclipse sehr glücklich war, Maven auszuführen und erfolgreich zu erstellen, war es nicht offensichtlich, dass die rote Fahne und das Repo-Problem die Ursache für die mangelnde Bereitschaft waren, den Pom zu analysieren und den Maven aufzulisten Abhängigkeiten

Bigbadmouse
quelle
1
mvn eclipse:clean

dann von eclipse: "Maven Update Project" macht den Trick!

Ebuzer Taha KANAT
quelle
1

Das Aktualisieren des .classpath auf unten funktioniert jedes Mal.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="WEB-INF/" kind="src" path="src/main/webapp"/>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="output" path="target/classes"/>
</classpath>
Jeryl Cook
quelle
1

Maven-Abhängigkeiten: Was hat es für mich in Eclipse gelöst? Ich habe die Abhängigkeit in der "pom" -Datei hinzugefügt. Ich habe einen Build erstellt, konnte aber die Maven-Abhängigkeit in der Eclipse nicht sehen. Nächster Schritt: Schließen Sie das Projekt. Dann öffnete das Projekt erneut. Ich konnte die Maven-Abhängigkeiten sehen.

Krishna Rajagopalan
quelle
1

Ich habe diesen Fehler erhalten, als ein Fehler in Pom aufgetreten ist.

  1. Führen Sie den Befehl mvn eclipse: eclipse auf der Konsole aus, um zu überprüfen, ob pom analysiert werden kann oder nicht.
  2. Wenn nicht analysierbar, suchen Sie nach dem Fehler.
Ahmed Bilal
quelle
Ich laufe unter Cygwin. Ich habe festgestellt, dass nur dieses Projekt nicht unter Eclipse erstellt wurde, obwohl ich erfolgreich mit mvn in der Befehlszeile erstellt wurde. Nach dem Ausführen wurden mvn eclipse:eclipsealle Abhängigkeiten zum Klassenpfad im Eclipse-Projekt hinzugefügt, und das Projekt sah gut aus. ++
Bill Naylor
0

Es ist so erstaunlich, dass dieses eine Problem so viele verschiedene Ursachen und mögliche Lösungen hat. Ich habe noch eine andere Lösung gefunden, die für mich funktioniert hat.

Nun, es ist nicht so sehr eine Lösung, sondern eine Entdeckung: Ich kann den Knoten Maven Dependencies im Paket-Explorer sehen, der die Standardeinstellung für die Java-Perspektive ist, aber ich kann ihn nicht in der Java EE-Perspektive sehen, die den Projekt-Explorer verwendet standardmäßig. Beide Entdecker sehen sich auf den ersten Blick sehr ähnlich, sodass Sie erwarten können, dass die Maven-Abhängigkeiten in beiden angezeigt werden.

Als ich versuchte, das herauszufinden, hatte ich diesen Unterschied nicht bemerkt, also war es am Ende doch kein wirkliches Problem für mich.

Achtung
quelle
0

Wenn in Eclipse STS "Maven Dependencies" verschwindet, müssen Sie Ihre überprüfen und beheben pom.xml. Ich habe das (zweimal) gemacht und es gelöst. Es war kein Problem mit Abhängigkeiten, sondern ein String, der in meiner Position zufällig generiert und verschoben wurde pom.xml.

LucianoDemuru
quelle
0

Alles oben hat bei mir nicht funktioniert. Denn das Update bestand nur darin, den Repository-Ordner unter .m2 zu löschen und dann ein Maven-Update von Eclipse durchzuführen.

Khalid Abdlqader
quelle
0

So viele Antworten. Sie sehen, es kann viele Gründe geben, warum dies nicht wie erwartet funktioniert. In meinem Fall habe ich auch das - Tag um meine Abhängigkeiten nicht erkannt.Gesichtspalme

Beispiel:

...
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

Dies definiert nur die Abhängigkeit für dieses und alle Teilprojekte mit der gewünschten Version! So sollte es zB im Master-POM aussehen. Um die Bibliothek in DIESEM aktuellen Projekt wirklich zu verwenden, müssen Sie die Abhängigkeit wie folgt hinzufügen:

...
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </dependency>
</dependencies>

JETZT wird es die Bibliothek in DIESEM aktuellen Projekt bereitstellen.

Robert Fornesdale
quelle