wake-up-neo.com

m2Eclipse findet keine Maven-Abhängigkeiten, Artefakte wurden nicht gefunden

Ich benutze m2Eclipse als mein Maven 2 Plugin für Eclipse. Ich bin ganz neu in der Branche, daher ist mein Fehler möglicherweise einfach, obwohl die Suche keine Lösung für mich erbracht hat. Ich kann maven von der Kommandozeile ausführen und es erfolgreich erstellen. Wenn ich jedoch als vorhandenes Maven-Projekt importiere oder mvn Eclipse: eclipse verwende und dann importiere, werden die Artefakte nicht in meiner POM-Datei gefunden, sodass überhaupt keine Maven-Abhängigkeiten geladen werden.

Was seltsam ist, dass ich zwei Projekte habe, beide Kinder eines übergeordneten pom-Projekts. Ein Kind lädt alle meine Maven-Abhängigkeiten, während das andere keine findet und sagt, dass in meiner POM-Datei Artefakte fehlen. Auch hier kann ich sie problemlos über die Befehlszeile installieren und verpacken.

Ich habe sogar versucht, meine Projekte in Netbeans zu laden, was einwandfrei funktioniert hat, aber ich muss Eclipse verwenden.

Irgendwelche Ideen, wie man das behebt?

Aktualisieren

Verzeichnisstruktur, POM-Dateilayout:

--main
  --pom.xml   (is a pom package that is the parent to two other projects)
  --ProjectA
    --pom.xml
  --ProjectB
    --pom.xml

Main ist das übergeordnete Projekt von ProjectA und ProjectB. ProjectB hat ProjectA als Abhängigkeit. Anscheinend ist m2Eclipse über diese Abhängigkeit nicht erfreut. Sobald ich die Abhängigkeit von ProjectA aus der POM-Datei von ProjectB entferne, werden alle Maven-Abhängigkeiten von Eclipse gefunden.

- com.company.myproj:app:6.6.0:jar Missing: ---------- 1) com.company.myproj:main:pom:${myproj.version} ---------- 1 required artifact is missing. for artifact: com.company.myproj:main:pom:$
 {myproj.version} from the specified remote repositories: Apache-incubating (http://people.Apache.org/repo/m2-incubating-repository/, releases=true, snapshots=true), central (http://
 repo1.maven.org/maven2, releases=true, snapshots=false)

Ich brauche jedoch immer noch ProjectB, um diese Abhängigkeit für ProjectA zu haben. Die Fehlermeldung scheint m2Eclipse zu sein, das in einem Remote-Repo nach ProjectA sucht. Projekt A sollte sich nur im Verzeichnis .m2 befinden, aber ich bin nicht sicher, wie ich m2Eclipse anweisen soll, dort nachzuschauen.

Ich denke, dies ist möglicherweise nur ein m2Eclipse-spezifisches Problem, da die Verwendung von MVN über die Befehlszeile einwandfrei funktioniert. Wie bereits erwähnt, lädt NetBeans die Projekte und Abhängigkeiten einwandfrei.

32
vagabond

Ich hatte dieses Problem für Abhängigkeiten, die in anderen Projekten erstellt wurden. Heruntergeladene Abhängigkeiten von Drittanbietern wurden im Erstellungspfad gut angezeigt, aber keine Bibliothek, die ich erstellt hatte.

LÖSUNG: Klicken Sie in dem nicht korrekt erstellten Projekt 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 ein Maven-> Update Snapshots (oder Update Dependencies) aus. Ihre Fehler sollten verschwinden, wenn Ihr Projekt neu erstellt wird (automatisch, wenn Sie die automatische Erstellung aktiviert haben).

45
IceBox13

Es hört sich so an, als ob Ihre m2Eclipse-Installation den eingebetteten Maven verwendet, der ein eigenes Repository (das sich unter der Benutzer-Startseite befindet) und Einstellungen hat.

Wenn Sie die Maven-Einstellungen öffnen ( Fenster -> Einstellungen -> Maven -> Installationen können Sie Ihre Maven-Installation hinzufügen, indem Sie Hinzufügen ... und dann zum Verzeichnis M2_HOME navigieren.

Preferences screenshot
(Quelle: sonatype.com )

Weitere Details finden Sie im m2Eclipse-Buch

20
Rich Seller

Für mich hat maven die Abhängigkeit heruntergeladen, konnte sie aber nicht zum Klassenpfad hinzufügen. Ich habe meinen .classpath des Projekts gesehen, es hatte keinen maven-bezogenen Eintrag. Als ich hinzufügte

<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>

das Problem wurde für mich gelöst.

19

Einer der Gründe, warum ich herausfand, war, dass möglicherweise keine JAR-Datei aus dem Repository gefunden wird: weil die POM-Datei für diese bestimmte JAR-Datei möglicherweise fehlt oder beschädigt ist. Korrigieren Sie es einfach und versuchen Sie, es aus dem lokalen Repository zu laden.

2
HP24

Okay, ich habe das Problem behoben. Mussten zuerst die Projekte in Maven Projects konvertieren, sie dann aus dem Eclipse-Arbeitsbereich entfernen und sie dann erneut importieren.

1
Steven L

Dies kann ein Problem sein, wenn Sie eine benutzerdefinierte 'Settings.xml' mit einem anderen <localRepository> darin konfiguriert.

Eclipse verwendet die Standardinstallation von MAVEN und verwendet den Standardspeicherort, an dem der Benutzer nach dem lokalen Maven-Repository sucht, das auf Linux-Systemen '/home/${USER}/.m2/' lautet.

Eclipse kann auf einfache Weise für die Verwendung der benutzerdefinierten Datei "Settings.xml" konfiguriert werden. Gehen Sie dazu folgendermaßen vor: Springen -> Fenster -> Einstellungen -> "Maven" auswählen -> "Benutzereinstellungen" auswählen

  1. Wählen Sie unter "Benutzereinstellungen" die benutzerdefinierte Datei "Settings.xml" für "Benutzereinstellungen" aus, indem Sie auf "Durchsuchen" klicken und die benutzerdefinierte Datei "Settings.xml" auswählen.
  2. Klicken Sie auf "Einstellungen aktualisieren". Wenn im Textfeld "Lokales Repository" der benutzerdefinierte Speicherort aus der obigen Datei nicht angezeigt wird, geben Sie den Speicherort ein und klicken Sie auf "Neu indizieren".
  3. OK klicken'

Danach können Sie fortfahren, um Ihr Projekt im 'Projekt-Explorer' auszuwählen. Klicken Sie mit der rechten Maustaste auf 'Maven'> 'Projekt aktualisieren'. Stellen Sie sicher, dass Ihr Projekt im Fenster ausgewählt (angekreuzt) ist, und klicken Sie auf "OK".

Dies sollte helfen, das Problem zu beheben, wenn Sie die benutzerdefinierte 'Settings.xml' für Maven verwenden.

Ich hoffe es hilft.

0
Dinesh Kumar

Ich hatte Probleme mit der Verwendung von m2Eclipse (dh es schien überhaupt nicht installiert zu sein), aber ich entwickle ein Projekt mit IAM - maven plugin für Eclipse, das von Eclipse unterstützt wird Foundation (oder gehostet oder so ähnlich).

Ich hatte manchmal Probleme, da manchmal ein seltsamer Fehler für das Projekt auftrat (es konnte nichts verschieben), aber ein einfacher Befehl (von Eclipse als Task oder von der Konsole aus ausführen) + Aktualisieren (F5) alle Probleme gelöst:

mvn clean

Beachten Sie jedoch, dass ich ein Projekt in Eclipse erstellt habe. Allerdings habe ich pom.xml von Hand.

0