Skip to content

Differences between Ivy and Maven

by Vaibhav Aggarwal on January 4th, 2012

I have been reading quite a few documents/blog posts listing differences between Maven and Ivy and I could not find the answer in one place.

My understanding is:

1. Ivy is a dependency management tool while Maven is build + dependency management tool. It seems that there also exists something called ant targets for Maven which allows us to use Maven with Ant.

2. Maven imposes a fixed structure on the project. Maven also has a fixed set of scopes based on which dependencies are defined. Ivy on the other hand does not require a structure. It allows users to use arbitrary code layout and scope. Ivy is based on module configuration which defines a module and its dependencies.

3. It is easier to specify exclude dependencies in Ivy as compared to Maven.

4. Ant gives you lot more control and flexibility than Maven. This means that different projects in an enterprise can have different structures and targets which often leads to confusion. Maven has a standard way of downloading dependencies, executing tests, generating javadocs. When using Maven it is easier to migrate from one project to another.

No comments yet

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS