Andy is a software engineer and consultant, currently working for CapTech Ventures in Richmond, VA. His specialties are JavaEE and front-end development, and is an open source and web standard enthusiast. He has over 8 years experience developing web sites and applications, holds several Sun certifications, and blogs at www.andypemberton.com. Andy has posted 4 posts at DZone. You can read more from them at their website. View Full User Profile

Maven vs. Ivy - By the Numbers

12.22.2012
| 8361 views |
  • submit to reddit

 

I’ve had a few conversations lately about software tools and technologies — how to use them, how to pick them, how to know when to change, etc. These conversations can be exciting, educating, emotionally charged, productive, and sometimes not.

In a recent, very positive exchange, one colleague asked if I preferred Maven over Ant or Ant + Ivy simply because I had more experience on Maven.

Generally, I couldn’t say I preferred one technology stack over the other because I simply don’t know enough about the organization to make the call.

From a purely technical perspective though, my gut told me there is a brighter future in Maven than in Ant+Ivy. My reasons for this opinion are grounded in my experience, so I decided to research a few factors I consider important when it comes to technology tool selection.

Apache Maven Apache Ivy
Founded 2002
[wikipedia.org]
2004
[wikipedia.org]
Latest Stable Release 1/20/2012 9/30/2010
Jenkins Plugin Installs ~50,000
[jenkins-ci.org]
~1,200
[jenkins-ci.org]
Contributors 128
[ohloh.net]
9
[ohloh.net]
GitHub repositories 43,866
[github.com]
2,772
[github.com]

Couple of interesting observations from the stats above:

  • While Ivy is ‘2 years newer’, it’s last stable release was roughly 2 years earlier than Maven.
  • There are roughly 1500% more GitHub repositories referencing Maven than Ivy
  • There are roughly 1400% more contributors for Maven than Ivy (according to ohloh.net, anyway)

Google Trends also has an interesting view contrasting these two projects: Google Trends: Apache Maven, Apache Ivy

When discussing open source software projects, I usually think “we need to consider the vibrancy of the community”. How many people and organizations are contributing? How often? What other well known projects integrate with this tool?

From my view - when it comes to technology selection, it’s often OK to “follow the crowd”.

Published at DZone with permission of its author, Andy Pemberton. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Jonathan Lermitage replied on Sun, 2012/12/23 - 9:39am

In addition, I think IDEs support is very important. Eclipse seems to support Ivy, but NetBeans only have a limited and unofficial plugin. On the other hand, Eclipse and NetBeans offer an excellent support of Maven v1, v2 and v3. It's one of their core features.

I'd like to use Ivy (I like Ant), but without any plugin, I can't. So, I have only two choices : Ant without Ivy, or Maven.

Norbert Rakosi replied on Sun, 2012/12/23 - 4:33pm

I would say that it is not 100% accurate to compare Maven (as a complete build tool with dependency management) with Ivy (a dependency manager). Indeed Maven is the best choice in case you don't really care about building your software and so you leave everything to Maven, but this requires you to follow some rules layed down on how to structure your project and such...

I do think that in case you need more control over the build process Ivy together with Ant can give you just that, of course it does need some work and attention.

When it comes to IDE integration, I personally think that it is not something you can't live without from what I saw it is even better if developers have a clue about the build process and what happens behind the scenes...its about building their code, after all.

Considering the contribution and the changes to each project, I think it is quite reasonable to have rare releases on a project which does things well (I mean Ivy, and there are not too many things you can improve when it comes to ONLY dependency management), where-as build steps/processes change as technology evolves and so the build platform has to change too (I would be quite surprised if Maven wouldn't change for long time).

Bottom line is that both tools can be excellent if you know how to use them and both can bring you troubles ;), one is for sure Maven is the right choice for the masses.

PS. I work for a company where we migrated from Maven to Ant+Ivy because we needed to tweak the build process (and doing it with Maven would have been a hard task to accomplish) for some modules and today we are managing and building about 100 java modules with dependencies between them without any problem. 

Isaac Christoffersen replied on Fri, 2012/12/28 - 10:38pm

I wasn't surprised by how well Maven performed, but I decided to compare Gradle as well in the Google trends chart and was very surprised to see that there is now more interest in gradle than maven  - Maven v. Ivy v. Buildr v. Gradle

Monique Maker replied on Thu, 2014/04/10 - 1:10am in response to: Norbert Rakosi

 You are correct, Norbert. Here's what the Google trends say about this: Maven vs. Ant + Ivy vs. Gradle

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.