2010-12-15 17 views
1

Ich weiß, dass es verschiedene bekannte Probleme mit dem M2eclipse-Plugin gibt, und ich nehme an, dies ist nur eine davon. Hoffentlich kennt jemand eine Lösung oder einen Workaround.M2Eclipse kann keine Abhängigkeiten finden, wenn es sich um Projekte im selben Arbeitsbereich handelt.

Wir haben wie 30 Projekte in unserem Arbeitsbereich, sondern aus Gründen der Übersichtlichkeit können dort übernehmen sind nur 2: A en B.

B A als eine Abhängigkeit in der pom.xml von B. beinhaltet das Problem, das wir haben, ist dass in der Eclipse die Klassen von A nicht gefunden werden können, so dass Kompilierungsfehler auftreten. Wenn Sie jedoch "A" installieren, um es im lokalen Repository und dem geschlossenen Projekt A zu implementieren, ist alles in Ordnung; keine Kompilierungsfehler Wenn A im Projekt vorhanden ist, scheint M2Eclipse nicht in der Lage zu sein, den Klassenpfad in der Eclipse korrekt zu setzen.

Um die Sache etwas merkwürdiger zu machen, haben wir auch Projekt C, das ebenfalls (genau wie B) von Projekt A abhängt, aber hier haben wir keine Kompilierungsfehler. Wir können keinen sinnvollen Unterschied zwischen Projekt B oder C feststellen; Wie gesagt, enthalten sie A auf die gleiche Weise.

Dank für Ihre Hilfe, Stijn

P. S. Ich benutze Version 0.10.2.20100623 des Plugin

Antwort

2

endgültig geklärt, nach quälenden Stunden fand ich die Ursache. Ich konzentrierte mich auf die Dateien .classpath und .settings, aber das Problem befand sich in der Datei .project. Diese Datei in Projekt A fehlte nach dem Eintrag in den Tag-Naturen:

<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> 

Hinzufügen dieser gelöst die Probleme.

2

Ich habe dieses Verhalten schon einmal erlebt, und es ist für mich in der Vergangenheit aufgetreten, wenn ich die Maven-Projekte separat importiert oder ausgecheckt habe.

Voraussetzung: Vergewissern Sie sich, m2extras installiert ist, bevor Sie ein Multi-Modul Maven-Projekt finden Sie unter: update site

Das erste, was zu versuchen: jedes Projekt einen Rechtsklick und Maven wählen -> update Projektkonfiguration. Das Plugin ist möglicherweise intelligent genug, um zu erkennen, dass es Projektreferenzen zwischen den Projekten erstellen kann.

Zweite Sache zu versuchen (wenn Ihre 30 Projekte sind alle Submodule aus einem Stamm): Dies wäre am einfachsten, weil Sie die SCM-Integration von m2eclipse verwenden können, um eine "Checkout als Maven-Projekt ..." auf der Wurzel Pom. M2eclipse würde ein Projekt für den Superpom und für jedes Submodul erstellen, mit entsprechend erstellten Projektreferenzen.

Dritte Sache zu versuchen: Ich würde versuchen, Projektverweise in den Projekteinstellungen jedes Projektes zu erstellen, um ihre gegenseitigen Abhängigkeiten zu spiegeln. Es wäre eine Menge Arbeit, und wenn Sie Ihre Eclipse .project/.settings (eww) nicht einchecken, müsste es für jede Arbeitskopie einzeln gemacht werden.

+0

Bereits +1 für die nette und klare Erklärung; Ich habe in der Tat die Extras nicht installiert, ich werde das zuerst tun und dann auch deinen zweiten Vorschlag versuchen (wir haben tatsächlich einen Wurzel-Pom). –

+0

Hallo, ich habe auf m2eclipse v12 aufgerüstet und auch die Extras installiert. Ich importierte alle Projekte, indem ich das Elternpom importierte. Leider hat dies das Problem nicht gelöst. Auch Schritt 1 (Update Config) hat nicht geholfen. Das Ändern von org.eclipse.wst.common.component in .settings (was natürlich nicht in svn ist) war NA, da das nicht gefundene Projekt bereits korrekt darin referenziert wurde.Betrachtet man die Abhängigkeiten von Projekt B in Maven, stelle ich fest, dass Projekt A nicht enthalten ist (aber andere Projekte wie C). Ich schätze, die Ursache (und die Lösung?) Liegt hier, aber ich kann es nicht sehen ... –

+0

Wenn Sie bereits sichergestellt haben, dass die Projekt B-Abhängigkeit den GAV des Projekts A genau spezifiziert, würde ich vorschlagen, den mvn- dependence-plugins Analyseziel oder die Abhängigkeitsdiagrammansicht des m2eclipse POM-Editors als nächsten Geruchstest. –