Maven-Eclipse-plugin-und classpath-Probleme in Eclipse
Ich bin mit Eclipse 3.51, Maven 2.0.9, Java 1.4, mit dem Maven-Eclipse-plugin-2.7 mit WTP 2.0 (nicht m2Eclipse).
Habe ich mir eine flache multi-Modul-Projekt ist wie folgt aufgebaut (Modul Elternteil mit dem parent-pom, Modul A und B ist abhängig von C).
Import der vier Module für die erste Zeit wird zeigen, compile-Fehler, wie erwartet, da ich noch nicht ran-das eclipse-plugin. Mit meinem lokalen repository leer, läuft eclipse sauber aufgelöst wird, werden alle Compiler-Fehler und Abhängigkeiten innerhalb meiner lokalen workspace.
Wenn ich einige kleinere code-änderungen zu Modul B und führen Sie das eclipse-plugin wieder kompilieren Fehler auftauchen würden, die in Modul A und B. Fehler bei der Kompilierung von Klassen, die nicht gefunden werden kann. Es ist wie das Modul C ist nicht mehr in der classpath für A und B zu sehen.
Ich Blick auf die .classpath-Datei und die definitiv auf den richtigen Module in den Eclipse-workspace.
Wenn ich das lösche ist das maven-repository und machen den eclipse wieder sauber, der Fehler bei der Kompilierung über ungelöste Klassen sind behoben. Auch, wenn ich das Eclipse-clean-Befehl mit der useProjectReferences flag auf "false" und führen Sie dann erneut, es mit dem wahren, Eclipse wieder aufbauen würden "mein Arbeitsbereich" und die Fehler Weg gehen wird.
Whats going on?
InformationsquelleAutor user238286 | 2009-12-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
So weit So gut. Nur eine Frage: von eclipse sauber, Sie don ' T mean
eclipse:clean
aber sauber unter Eclipse, richtig?Ich bin mir nicht sicher, warum Sie das ausführen des maven-eclipse-plugin nach einem kleinere code-änderungen zu Modul B aber, sagen wir, Sie haben, z.B. weil Sie Hinzugefügt, die eine Abhängigkeit haben (es wäre hilfreich gewesen zu erwähnen, die Ziel, die Sie ausführen, aber nie Verstand). Bei Verwendung des maven-eclipse-plugin mit einem multi-Projekte zu bauen, wird es mit Projekt-Referenzen werden standardmäßig in der Eclipse-Ebene (d.h. A und B hängen von der kompilierten Klassen C, nicht auf C-GLAS). Und weil Maven und Eclipse teilen die gleichen
target/classes
Ordner, eine saubere zusammenzustellen oder auf die Maven-Ebene kann verwirren Eclipse. Sie sehen nicht die kompilierten Klassen mehr und wird nicht kompiliert, Sie von selbst (weil die änderung nicht auftreten, in Eclipse). In diesem Fall, eine Sonnenfinsternis zu reinigen oder neu zu erstellen (d.h. auf der Eclipse-Ebene) sollte das problem lösen.Ja, das ist nicht das problem. Das problem kommt von der Tatsache, dass sowohl Eclipse und Maven denselben Ordner für die Kompilierung von Klassen.
Du wirklich nicht haben, dies zu tun, und ich verstehe nicht, was das maven-repository damit zu tun hat, wenn Sie mit Projekt-Referenzen. Ausführen eines sauberen und/oder Wiederaufbau alle Projekte unter Eclipse sollte das problem lösen.
Sind Sie auf der Projekt-Referenzen oder nicht? Wieder, das nächste mal, vielleicht bieten die plugin-Konfiguration in Ihrer Frage, dies kann helfen. Trotzdem sollten Sie nicht zu berühren zwischen den builds. Entscheiden Sie, ob Sie möchten, verwenden Sie Projekt-Referenzen (ich denke, es ist mehr bequem, ohne Ihnen werden Sie brauchen, um
mvn install
C änderungen zur Verfügung für A und B) und stick mit dieser Konfiguration. Nach einermvn
bauen, Umbau der Eclipse-workspace sollte genug sein.PS: Hinweis: Sie können konfigurieren, das maven-eclipse-plugin, um eine benutzerdefinierte
buildOutputDirectory
, zum Beispieltarget/eclipse-classes
aber das hat andere Nachteile (ich war nicht dabei).InformationsquelleAutor Pascal Thivent