Friday, December 22, 2006

Why I hate maven2

Recently at work I've been assigned to come in as firefighter to get a J2EE project back on track. Basically a ton of compile errors before delivery. I did the sensible thing like getting a cruise control server going and getting the developers to write meaningful unit tests. I also discovered they were using Maven2 as their build tool. I hadn't used it before so I was excited to finally have a real project to check it out on.

Well it's only been a week but I really just don't see the added value of Maven's dependency management. I've used a similar system Savant in another project and just junked for doing everything with ant and subversion. The thing that fundamentally bothers me is having two repositories. One is subversion for all the code, scripts, etc, and one is Maven for all your jars or binary dependencies. So you can no longer just checkout a project from svn and build it from scratch. You have to setup a local repository and maybe a remote repository, or connect to the internet. What happens when you want to build on production servers when there's no connection to the internet? The Spring guys have figured this out as well. So far for my projects it's just another layer on top of ant for not much gain. Just version your jars and check them in subversion!!! Also when I start seeing all the same ant tasks being replicated in maven you just have to wonder why???? I already get the creeps with ant when I feel like I'm coding Java in xml (for loops, if then, etc). So I'm definitely going to try to get my next project on something based on Ruby.

Or maybe I just need a little more time