Maven 2 will not gain a large user base until it can provide an easy mental migration path for Ant users. Today I saw Running Ant tasks in Maven 2:
“Running Ant tasks in Maven 2 is completely different from Maven 1. In Maven 1 you could define the Ant tasks in maven.xml and run them as easily as any other Maven task. In Maven 2 this has changed, I would say for the worse. Maven 2 no longer has a maven.xml and requires that everything is a plugin.”
I would have to to agree. Maven 2 has this weird ability to be extremely exciting, but also terribly annoying. It’s exciting because it really does do 80% of the build management for you. Unfortunately, the other 20% that it doesn’t do out of the box (and probably shouldn’t, since it is usually unique to each project) is a pain to do.
When speaking with the developers, the usual response is to “write a plugin”. Well, great. If I was a Maven developer I’m sure writing a plugin would be no big deal. In fact, I found that tweaking a plugin (such as the ultra cool IDEA plugin that generates your IDEA .iml, .ipr, and .iws files) is super painless. But it’s quite another thing to ask someone to create a new plugin from scratch, especially considering they don’t know the Maven APIs at all.
Even more, a build system is something that should be made easy. It literally can stop all development when it doesn’t work. This can be enough to frustrate users in to never looking at Maven again after they hit their first 24+ hour roadblock.
For Maven to take off, the developers need to admit that “writing a plugin” isn’t the answer for everything, especially for new users. Over time, new users such as myself should be weened off of Ant and create plugins instead. But for those of us just starting to use the project, why not provide an easier mental migration path in the form of something we’re familiar with?