Babel IT

Java software ontwikkeling

m2eclipse

Handig om Maven projecten in Eclipse te gebruiken en dan ook direct alle dependencies goed te hebben. Dat is wat de m2eclipse plugin doet. Inmiddels is er een nieuwe versie van de plugin die voor elke plugin een extensie nodig heeft, maar de oudere versie probeerde dit allemaal zelf uit te vinden. In het algemeen met hele goede resultaten: directories voor gegenereerde code werden automatisch toegevoegd en zo. Erg fijn. Maar toen ik wat code (xsd’s in dit geval) wilde uitpakken in een bepaalde directory met de standaard magen-depenendencies-plugin ging het binnen Eclipse toch mis. Wat blijkt: m2eclipse runt Maven met een speciale EnhancedLocalRepositoryManager. Deze repository manager zorgt er (onder andere) voor dat indien een dependency zich in de workspace bevindt, deze niet als jar maar als project dependency wordt opgenomen. Voor Eclipse zelf is dat heel fijn, voor mijn probleem niet. De maven-dependency-plugin probeerde namelijk een jar uit pakken terwijl dit als een directory, namelijk de classes directory van het project, werd gepresenteerd. Ik heb uiteindelijk zelf een unpack-maven-plugin geschreven die als de repository manager een directory teruggeeft een kopieer actie uitvoert en als het een bestand is (doorgaans een jar) een unpack actie. Daarmee werkt de plugin zowel correct binnen Eclipse als daarbuiten.