Mit dem Eclipse-Plugin m2e (m2eclipse) ‚Maven Integration for Eclipse‘ kann man innerhalb von Eclipse die Mächtigkeit von Maven nutzen. Das Plugin ist mit der 1er-Version von Sonartype zu Eclipse umgezogen, wobei vorhandene Konfigurationen nach dem alten Plugin mit der neuen Plugin-Version nicht mehr funktionieren.
Wenn wir ein bestehendes Projekt mit der Konfiguration nach dem alten Plugin haben, müssen wir nur ein paar Einträge in den Eclipse-Konfigurationsdateien ändern, damit das Projekt mit dem neuen Eclipse-Plugin wieder funktioniert. Die folgenden Anpassungen habe ich mit Eclipse Indigo und der m2e-Version 1.0.100.20110804-1717 ausprobiert.
Zunächst müssen wir die .project
-Datei anpassen. Dort müssen wir erst einmal den Nature-Eintrag von
<nature>org.maven.ide.eclipse.maven2Nature</nature>
auf
<nature>org.eclipse.m2e.core.maven2Nature</nature>
ändern, damit das Projekt als m2e-Projekt erkannt wird. Dann müssen wir noch den Builder-Eintrag von
<buildCommand> <name>org.maven.ide.eclipse.maven2Builder</name> <arguments> </arguments> </buildCommand>
auf
<buildCommand> <name>org.eclipse.m2e.core.maven2Builder</name> <arguments> </arguments> </buildCommand>
anpassen, sodass der korrekte Builder beim Erstellen des Projekts genutzt wird. Damit sollten alle m2e-Funktionalitäten im Eclipse-Projekt wieder verfügbar sein. Allerdings compiliert das Projekt vielleicht noch nicht.
Wir müssen in der .classpath
-Datei noch den Eintrag für die Variable MAVEN2_CLASSPATH_CONTAINER
anpassen, damit die Java-Librarys von Maven auch eingebunden werden. Dafür ändern wir die Zeile
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
auf
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
um. Jetzt sollte in der ‚Package Explorer‘-View ein Library-Eintrag „Maven Dependencies“ mit den entsprechenden Java-Librarys vorhanden sein und das Projekt ohne Fehler compilieren.
Es gibt übrigens hier ein kostenloses Online-Buch zu m2e von Sonartype, das allerhand Tipps im Umgang mit dem m2e-Plugin bietet.