I’ve enjoyed Maven’s built-in maven-eclipse-plugin as a handy little tool for creating Eclipse projects from Maven POMs. But I was recently lured into trying m2eclipse (a.k.a, m2e) because of its feature set. After all, common Maven tasks (running builds, editing POMs, adding dependencies, updating repos, etc.) can certainly benefit from some tooling and automation.
So I installed the plug-in into Eclipse and then ran the obligatory Configure -> Convert to Maven Project. Imagine my surprise when I was immediately rewarded with the exception:
“Updating Maven Project”. Unsupported IClasspathEntry kind=4
Turns out, this is a known bug due to the fact that m2e and maven-eclipse-plugin use two different approaches for classpathentry values in .classpath files. If you try to migrate a project created with eclipse:eclipse (like mine and countless others were), you get this error. M2e went so far as to add this comment to my.project file:
NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
Can’t we all just get along? Can’t maven plugin developers agree on a standard for this fairly common and straightforward requirement?
Since interoperability with multiple environments and the command-line are important to me, I decided to just ditch m2e. I’m simply not willing to lock my project into this plug-in, closing the other (more standard) options. If m2e adds compatibility in a future release, I’ll try it again. And if not? Nevermore.