How Did MyEclipse Get Their Maven Integration so Wrong?

September 04, 2008 By Jason van Zyl

8 minute read time

Eugene and I have been watching with amazement how vocal MyEclipse users have been about their great disappointment with Genuitec's attempt at Maven integration, which amounts to complete mutilation of m2eclipse and the way Maven itself works. Genuitec decided to work in their standard fashion, which is unfortunately not a very collaborative mode of operation, and it's apparent that MyEclipse customers are not happy.

MyEclipse Breaks Maven

Maven has a very opinionated way of doing things, there is a very strong structure that is encouraged and users have come to like the convention over configuration approach. I warned Wayne Parrot from Genuitec that changing the way Maven worked by default, or at least the attempt to, would result in unhappy Maven users. None of our documentation would apply, users could not use conventional modes of support like the Maven users lists, or the m2eclipse users lists, and they couldn't benefit from standard books, or the Maven website. I really wasn't very pleased with some of the initial reactions but it was this quote that drove me to write something about the unequivocally abysmal Maven4MyEclipse integration:

I was using maven4myeclipse because I was following a book on maven. Until I reached a chapter on multi-module maven projects, after countless hours and then days trying to get the example chapter to work in maven4myeclipse I went online seeing if anyone else encountered similar problems. Well I've saw on google that someone in the myeclipse forums actually "removed maven4myeclipse" (http://www.myeclipseide.com/PNphpBB2-viewtopic-t-21172-highlight-m2eclipse.html) and instead installed m2eclipse. Curious I followed those same steps and managed to install m2eclipse without any obvious problems.

I was surprised to see that not only did m2eclipse have everything that maven4eclipse had but it seemed much, much, much more capable of doing big multi-module enterprise applications minus the frustration that maven4eclipse gave. Also m2eclipse truly followed the "convention over configuration" philosophy as I could literally drag and drop ANY pom files from any location into a m2eclipse project and have it working immediately. As opposed to maven4myeclipses non-standard propietary project meta information which is very myeclipse centric and non-portable for maven projects.

I'm very disappointed in the maven4myeclipse plugin and I'll recommend to anyone reading this post that if they want a excellent maven plugin for their projects, I would strongly recommend that they uninstall maven4myeclipse and instead install m2eclipse, I'm sure that it'll be compatible with your existing maven projects with a minimum amount of disruption.

So how did did Genuitec get their Maven integration so wrong? I really think it is a lack of foresight in cooperating with a project that has a very strong community and doing pretty poor product planning. They obviously didn't talk to many of their customers about Maven integration as you can see from litany I've collected below. I think the integration of Maven in MyEclipse can be considered a complete flop by MyEclipse users. Hopefully the next time around Genuitec will make an attempt to communicate more with the Open Source community which they are trying to leverage and do a better job of listening to their customers or they are going to be listening a continuation of the litany below.

So what can Maven4MyEclipse users do? Well, I don't have an ideal solution because that's up to Genuitec. As a stop gap for MyEclipse users who want to harness the full power of m2eclipse, they can use the following update site that will disable Maven4MyEclipse and replace it with stock m2eclipse.

http://m2eclipse.sonatype.org/update-maven4youreclipse/

After all, it's your Eclipse and you can have Maven the way you expect and want it. Glad we could help. The rest is a keen lesson in learning to treat your customers like an intelligent community of users who prefer to not have their time wasted.

The Genuitec Maven Integration Litany from MyEclipse Customers

We've assembled some of the feedback from Genuitec's own customers who are frustrated with the problems they are having with Maven4MyEclipse:

Maven projects are not arbitrary. They have a consistent and predictable layout. You have effectively made m2eclipse useless with your M4ME implementation. Because of this I'll most likely not move to newer versions of MyEclipse past 6.0. (source)

I have several hundred maven projects that work just fine with m2eclipse but are useless with Maven4MyEclipse. Hopefully future versions will become compatible but until then i will not upgrade. (source)

Why do we need a custom implementation of m2eclipse? Why do we need custom implementations of anything? I don't mind new features being added to MyEclipse, but if each new version is going to break my existing setup, it begins to become tedius. Especially if there is no easy way to disable a conflicting feature from within the Manage Your Configuration. Creating a new project and copying things into it is simply not an option. (source)

Okay, I have now been able to disable Maven4MyEclipse and have the original m2eclipse working again (on MyEclipse 6.5). (he also provides instructions how to remove Maven support from MyEclipse) (source)

The crux of the issue here is that m2Eclipse is very powerful, very flexible and works with existing projects or new ones. I can take any maven-based project and just use it. Maven4Myecilpse appears only to work for Newbies at the expense of those of us who already have Maven-based projects. So, for people like me, M4ME offers none of the value that M2E does. And as a result I'll probably do what's been recommended above and pry your component out in favor of putting M2E in. (source)

If you read this thread you'll see that's exactly the problem. One of the other posters mentioned 400 maven-based projects. Without being able to add maven support from ME to the project, he can't function within ME 6.5. I think if you can't fix M4ME at least make it so those of use who want to use M2E can turn off M4E. (source)

Like many others here, I find Maven4MyEclipse to be a major step BACKWARDS in functionality from the plain-old m2eclipse plugin.What in the world were you thinking to actually REMOVE from m2eclipse the standard maven project structure? Simply defies all belief! (source)

I am migrating from M2Eclipse to Mave4Eclipse my project works fine with M2Eclipse when i try build using the Mave4Eclipse i am getting this error. (source)

We currently have the Standard edition, so we cannot use maven4myeclipse, and are unable to run m2eclipse after it is installed. This is very disappointing and doesn't seem to be in line with the pluggable / open architecture of eclipse. (source)

I appreciate all the hard work which has been put into the myeclipse maven integration but It is not yet a complete maven solution and has several features which are missing (many of which are already implemented in the m2eclipse plugin). As a paying customer I'd like to get the some of the new features of 6.5 but i cannot because I am forced to stay at 6.0.1 until the myeclipse maven integration catches up to m2eclipse. This doesn't seem like a viable solution. (source)

I'm no great fan of Maven after it biting me severely along the way but it would at least vaguely work with the M2Eclipse plugin. Rolling back from 6.5.1, a fantastic release otherwise where a lot of bugs I was running into were fixed, and having no option to run the freely available working Maven plugin and pay for it just hurtful. (source)

We've bought six Standard edition licenses, but we can't use them while MyEclipse won't work with our existing Maven projects. Is there a download of version 6.01 for OSX available until you have removed Maven4MyEclipse from the Standard edition? (source)

I installed m2eclipse not realizing that MyEclipse 6.5 had a maven plugin. I seem to have had a conflict (both m2eclispe or Maven4MyEclipse preferences pages are getting exceptions) so I disabled the m2eclipse plugin. Even though m2eclipse is disabled, I am still getting a java.lang.NoClassDefFound error from Maven4MyEclipse preference page. I am unsure how to recover at this point -- do I have to reinstall MyEclipse 6.5 and start over? Also, is there a way to disable Maven4MyEclipse? (source)

This is, quite frankly, ridiculous, but you've already heard that over in other threads. (But it's sort of unfathomable how you guys didn't anticipate that this would be a problem -- integrating m2eclipse into MyEclipse in such a way that you removed functionality AND prevented users from restoring that functionality with their own local installs of m2eclipse. Did this really, really never cross the drawing board?!?) (source)

...why stomp on the namespace of the existing m2eclipse plugin? Why didn't you create your functionality in an entirely different namespace, and make it so that users could choose whether to use it at all, and if they chose not to use it they wouldn't have any problem installing m2eclipse right atop MyEclipse 6.5? (source)

this new feature prevents us from using 6.5 with our existing maven projects... which we would like to be able to do as used to. Downgrade ahead of us. (source)

I created a Maven project from scratch at work and checked it in to Subversion. I'm also lucky enough to be able to work from home and have access to that svn repository, and I'm flabergasted that I can't check out that same project and work on it at a different location and have all the same functionality available to me. I can't add Maven support to the project. I can't figure out how to add AspectJ support. It's a total nightmare trying to get this project working on another machine. (source)

If the magnitude of the problem isn't completely clear from this forum thread, just for the benefit of the developer folks, I use Maven 2 for all Java projects developed for my company and others I consult for. When I discovered that the initial Maven 2 support in MyEclipseIDE prevented using existing Maven 2 projects, I had to completely uninstall MyEclipseIDE and am unable to use it at all now. So I'm a version behind, and am stuck there until this Maven support issue is resolved. So if this support issue has been resolved, then please let me know, so I can upgrade. If not, then please understand the magnitude of the problem: I cannot use MyEclipseIDE at all until this is resolved. (source)

Tags: Nexus Repo Reel, Everything Open Source

Written by Jason van Zyl

Jason is a co-founder and the former CTO of Sonatype.