Maven, the new Elephant on the Block

Some of you may remember the article, by Bruce Tate, Don’t Make Me Eat the Elephant Again.
It was an article about EJB, and Bruce was begging Sun not to make the same mistakes with EJB3 as they had done with EJB, and EJB2. They didn’t, Spring came along as better alternative and forced EJB3 to become slimmer and better. If not for Spring, EJB3 would probably look very different from what it looks like today.
Well, guess what, there is a new elephant on the block and its name Maven2.

Just like EJB2, Maven2 was born out of something so unbearable that anything else was bliss. Jelly anyone!

But just as EJB was fundamentally flawed, so is Maven2. Build systems, even advanced ones like Maven is fundamentally about two things.

  1. Check if something that something else depends on has changed
  2. If so, do something.

That’s it, that is what is important.
The checking may contain various sophisticated methods for detecting if files, subsets of files, all files, web pages, twitter feeds, etc, has changed, but that is really it.
And the doing can be anything, Copy files, commit files, build websites, run tests, generate code, launch missiles, whatever!
But the key to doing this efficiently is a programming language with easy access to system commands and the ability to create simple abstractions, with methods, variables, and objects. The language should also, preferably, be one without a lot of ceremony, like Ruby, Javascript or Python.
There are already build systems like this out there, Buildr, SCons, and Rake come to mind, but they do not have the momentum of Maven, so a merger between Maven and Buildr would be wonderful.

So, Jason, hear my plea, Don’t make me eat the elephant again!

3 Comments

  1. Gradle, http://www.gradle.org/, looks interesting. Groovy as the scripting lang, Ivy for dependencies, and support for Ant tasks and Maven.

  2. Uzi Landsmann

    New elephant? Maven 2 was released on October 2005. Do you by any chance refer to Maven 3 which is in alpha?

  3. Anders Janmyr

    @Uzi: I was referring to new as in: the new elephant instead of EJB, not as in new in age. But your point is well taken. I should have written this post years ago.

Leave a Reply