07 October 2009

Ivy + Ant versus Maven

I  have tried both Maven and Ivy + Ant enough to make a simple comparison. Ivy is a dependecy management system. It means in other words that you don't have to check in the binary jar files of dependencies you have in your project. Maven is also a dependecy management system but it is much more then that. Maven also has project management and build features.

Maven usage has increased in the open source community. But there are some problems:
  • Maven is complex and hard to learn. This is from my own experiance. Even though it is rather simple to get a basic project to "talk" Maven, it becomes very hard when you have some special thing (for example some strange build task).
  • Documentation is lacking. Many of the features in Maven is not documented good enough on the official Maven page.
  • Complex syntax. This is perhaps of lesser importance when there is a good Eclipse plugin. But it still is a hassle to insert 11 lines in the Maven project descriptor file just to change the Java Compile level.
Ivy also has some problems:
  • You have to write Ant files (or some other script) to build your system. Maven can build and test by a declaration-language.
  • The plugin to find dependencies for Ivy in Eclipse is... well non-existent. Maven has a find and browse dialog to find dependencie.
 If you only need the dependecy management feature I would recommend to go with Ivy. But if you need the other features only found in Maven perhaps that is the way to go.

No comments:

Post a Comment