Maven, Ant, or Gradle

I’ll make this short. Two of these three tools are build tools, one of them is a full blown configuration management tool. One of them is one of the most popular software development tools ever built and eclipses the other two in numbers of users. One of these tools is right for you. Do you know which one? I’ll give you a clue, it’s not Ant or Gradle — because they’re both broken by design. And the answer is… You should use Maven, and if you suggest anything else to your teams and clients then you are wrong and need more training — you’re just not seeing the bigger picture and you don’t really know what you’re doing (try humility, it might just work out for you — I don’t both with it myself, but then I know what I’m doing).
Maven has many problems. All of them can be fixed. You can’t fix the design of Ant or Gradle, because it’s inherent in the type of tool they are. All of my tools understand the structure of my system (which is, at the time of writing, extremely complex, multi-language, with hundreds of independently deployed and versioned REST based services) and all of my tools work together to process this model for the purposes of building, deploying, configuration management, and documentation. If I used Ant or Gradle then I’d have to build all these tools again, myself, from scratch, in a language hardly anyone knows any more (Ant) or in one nobody wants to learn (Groovy — it’s just not that popular and I really don’t want to know — I’m not a computer scientist, I’m an engineer).

You may object to this opinion. That’s ok, you’re allowed to be wrong, unless you’re getting paid for your advice, in which case it had better be top notch. You’ve now been told by a very senior engineer that Maven is right. If you want to argue with me, you’re wrong. Get over it and learn Maven. If you have problems with it, fix them yourself you could probably use the practice).

Mwah xxx

Leave a Reply

Please log in using one of these methods to post your comment: Logo

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

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s