February 25, 2010

Apache Maven: A Misbehavin’ Build Tool?

Filed under: ChEBI,programming,technology — Duncan Hull @ 11:00 am
Tags: , , , , , ,

Chocolate Tools by JanneMOne of the many tools we use in our team to manage the development of the ChEBI software is an automated build tool called Apache Maven. Opinions are often divided on whether Maven is a good or a bad thing. Most of them are very subjective, argumentative and often very extended. See why does Maven have such a bad reputation? and 25 things* I hate about Maven for examples.

All this is fairly predictable, and I could add a few tales of Maven woe to the pile myself. But wondering if Maven is any good reminded me of something Bjarne Stroustrup [1,2,3] (one of the people behind the C++ programming language) once said in an article on the problem with programming:

“There are just two kinds of [programming] languages: the ones everybody complains about and the ones nobody uses.”

Actually when you think about it this applies to build systems too, there are two kinds. It also applies to just about any technology you care to name, you can crudely classify them all into two categories:

  1. Those technologies everybody complains about…
  2. … and the rest, that nobody uses.

So is Maven any good? Worth using? Worth the pain? Depends on who you ask. What we can say for sure, is that like many technologies, everybody complains about it.


  1. Bjarne Stroustrup (2010). Viewpoint: What should we teach new software developers? Why? Communications of the ACM, 53 (1) DOI: 10.1145/1629175.1629192
  2. Bjarne Stroustrup (2007). Evolving a language in and for the real world: C++ 1991-2006 Proceedings of the third ACM SIGPLAN conference on History of programming languages DOI: 10.1145/1238844.1238848
  3. Bjarne Stroustrup (1993). A history of C++: 1979–1991 The second ACM SIGPLAN conference on History of programming languages DOI: 10.1145/154766.155375

* Only 25? That seems like quite a short list to me.

[CC-licensed Chocolate Tools image by JanneM, some commentary on this post over at friendfeed.]


  1. I think its definitely worth the hassle for a project over a certain size. There may be disagreements over what exactly that size is – but I believe it would be impossible to deploy and share large projects with the dependency management that maven provides.

    I’m always very happen to find that a particular library I want is available in a maven repo through eclipse. It just makes my life a lot easier when experimenting with new code. The EBI in particular are to be congratulated on the abdundance of libraries that are available through maven. It makes using their code a simple matter of clicking a few buttons in my favourite IDE.

    Comment by nhaslam — February 25, 2010 @ 3:32 pm | Reply

  2. That quote isn’t quite accurate, it’s not that simple. There are three types of languages/build tools/etc:

    The ones everyone complains about A LOT
    The ones everyone complains about once in a while
    The ones nobody uses

    In other words there’s the important detail of HOW WELL something performs, there are different degrees of success. Pointing out that nothing is *perfect* (as that quote was doing) is just rationalization.

    Comment by Maven Sucks — February 28, 2010 @ 1:19 am | Reply

  3. Here’s how to show that the quote above is hiding something: More people use Ant than Maven (most definitely) – do we hear more Ant complaints or Maven? I’d say there are more complaints about Maven. Even if they had an equal user base, more complaints about Maven still makes it the loser overall.

    Comment by Maven Sucks — February 28, 2010 @ 1:23 am | Reply

  4. Thanks for using my picture – and even more thanks for telling me. I love finding out about new things, and up until know I had no idea Maven (or Ant) even existed.

    Comment by Janne — March 6, 2010 @ 4:38 pm | Reply

  5. Hey Duncan. Funny you should mention Maven, I’ve just spent the last couple of weeks getting to grips with the Taverna codebase which is built using Maven. Its taken me about two weeks to write the code I needed and a large portion of that time was spent faffing around with Maven. I didn’t find any great introductory tutorials online, but once I “got it” I found it to be ok and the IntelliJ maven plugin is also quite good. These automated build tools are great when they simple work out of the box, but a complete nightmare do debug when they go wrong, especially when you’re trying to build a large project for the first time.

    Comment by Simon Jupp — March 11, 2010 @ 12:29 pm | Reply

    • Hi Simon, Yup, like most software, when it works its great. But when it goes pear-shaped, its a real pain. On a bad day I wonder if the benefit of Maven is really worth the (high) cost…

      Comment by Duncan — March 11, 2010 @ 2:39 pm | Reply

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: