Maven und Eclipse: m2eclipse
Viele Entwickler fühlten sich bisher bei der Nutzung von Maven 2 in die Vergangenheit zurück versetzt. Immer wieder neue Terminals oder Shells zum Ausführen der Maven Goals. Selbst mit dem WickedShell Plugin keine echte Freude für Eclipse Anwender. Während die ANT Untersützung automatisch in jeder Eclipse Distribution enthalten ist, wurde Maven – in meinen Augen zu Unrecht – etwas stiefmütterlich behandelt. Zwar gab es erste Ansätze wie m2eclipse und q4e. Allerdings waren diese Plugins lange Zeit in grossen Projekten nicht sinnvoll einsetzbar, weil elementare Eigenschaften fehlten.
Umso erfreuter war ich, als ich im Zuge der Einführung von Nexus gesehen habe, dass m2eclipse einen grossen Schritt in der Entwicklung getan hat. Das Erstellen neuer Projekte mit bestimmten Maven Archetypes sowie das Ausführen der gewünschten Goals aus der IDE heraus sehe ich schon als must have Kriterium eines solchen Plugins an. Ob man den grafischen POM Editor wirklich benötigt, mag jeder Entwickler für sich selbst entscheiden. Dependency Hierarchy View und Dependency Graph sind aber sehr nützlich, um den Überblick über die vielen Maven Artefakte zu behalten.
Einen Vorteil kann m2eclipse dann ausspielen, wenn es um die Suche nach Artefakten geht. Dazu bindet m2eclipse Indizes von anderen Maven Repositories ein. Das sind standardmäßig der aktuelle Workspace, das lokale Repository im Heimatverzeichnis des Nutzers und das central Repository. Bindet man statt central den internen Nexus Repository Manager ein, kann man in Eclipse automatisch alle Maven Repository Proxies nach Artefakten durchsuchen.
Die Suche geht sogar noch einen Schritt weiter. Nicht nur Artefakte können gesucht werden, sondern sogar Klassen innerhalb der Java Archive. Somit behält man selbst in großen Maven Projekten leicht den Überblick über Artefakte, Versionen und deren Abhängigkeiten. Hier hat sich in den letzten Monaten also einiges am Plugin getan und gerade in Kombination mit Nexus wird die Entwicklung von Maven Projekten in Eclipse mit m2eclipse nun vielfach angenehmer.


August 1st, 2008 at 2:53 pm
This is probably somewhat lost in translation, but can you please elaborate what fundamental properties are missing in m2eclipse that makes it not useful for large projects? Thanks.
August 1st, 2008 at 3:52 pm
Yes, I think there is a problem with your translation. In the first chapter I wrote: “… there were some essential properties missing.” Writing this, I speak about version 0.0.x from the beginning of 2007 (e.g. nested modules). And I’m glad to see a big movement towards a really useful plugin. So keep up the good work, Eugene.