If you want to catch someone losing their mind to the swirl of emotions and setting aside facts altogether, just introduce the topic of Maven vs Ant to any group of java developers who knows a little about either.

You Can't Make Me

The first concern of course is the issue of force. Maven is free as in free beer, but it ain't free as in freedom. It's all about restricting people, forcing them down a predictable and consistent path.

Take my friend Jimmy (psuedonym) who argued vehemently for years with me in 2002 and 2003 about Ant. You can't make me use Ant he said, and gave me dozens of reasons why shell scripts were better because you had more control and this and that etc. Bottom line was Ant sucked, for him, and no one was going to force him to learn it - I mean use it. Of course he wouldn't think of admitting that the real reason he hated it was that no one was going to force him to learn a new way of doing things.

I still hang out with Jimmy now 4 years later and we still drink beer together and we still have the same argument. Only now it's Maven that no one can force him to learn.

But it's worse, Maven takes away freedom, chaos, all that good stuff. So it's a real problem for Jimmy. That's all very good stuff.

Get To Vs Have To

With Ant you Get To do all kinds of things. You can shoot yourself in the foot in any of dozens of different ways. You can design your directory structure however you dang well want  and that is very important to people. All kinds of things are controllable on a very granular level. Very cool.

Of course, the flip side is you Have To control everything at a granular level, there is no base level of support where everything is done for you if you can just manage to follow a few guidelines.

Maven Doesn't Work

Then there is this minor issue that Maven Doesn't Work sometimes. Big stuff done for you is all fine when it works but boy it really sucks when it doesn't and there are a bunch of us, myself included, that absolutely HATE Maven at least 20 hours a year. That's a lot of time to spend hating something, and Maven earns every minute of that hatred, has every year for the past three years for me.

Mind you, Maven is a lot like the United States, it's the worst place in the world to live except for all the other countries. I do love Maven the other ((365X24) -20)hours a year.  So that is a lot of time to love something.

You might ask isn't there something less extreme than love or hate for Maven, something more in the middle ? The answer is NO. When it works which is 97% of the time it's pure love, and when it doen't it's pure hate. Sorry about that.

You might ask why Maven is broken as much as it is ? That's a good question. Pass that pitcher of beer....

Ant Ivey Vs Maven

It is interesting to me that Jimmy who hated Ant and then hated Maven's forced dependency controls now likes Ant an likes Ant's adoption of Ivy for forced dependency control but his new mantra is Ant Ivey over Maven.

Look dude, Ant Ivey IS Maven, only without the rest of the safety net. Let's not pretend here.

I'll agree though, that if you are going to use Ant, then Ivy is necessary to at least TRY to get half way to Maven.


Obviously I could talk about this forever, but then again I already have. Here is a link to last February's presentation to our local user's group on Ant vs Maven

We're all adults here, or at least that's the operating assumption. Main thing is choosing by the facts, and the facts weigh heavily on the side of picking your poison.

I've picked my poison. I will never go back to the chaos and inconsistency that comes from organizing every stupid project in a different way.

But that's just my choice, obviously. And yes, I do hate Maven. Just not nearly as much as I love Maven.


[UPDATED} There was one comment on this blog when it was at a previous location