Apache Ivy 2.0 Final Released
Ivy 2.0, the next version in the Ivy project dependency manager, has been released.
Key features of the 2.0.0 release are
- enhanced Maven2 compatibility, with several bug fixes and more pom features covered
- improved cache management, including dynamic revision caching with fine grain TTL
- improved concurrency support with cache locking and atomic publish
- namespace aware validation, allowing to use validation with extra attributes
- new 'packager' resolver added
- better and more homogeneous relative paths handling
- better support for local builds
- numerous bug fixes as documented in Jira and in the release notes
Apache Ivy is a tool for managing project dependencies. The Apache website further defines Ivy in these ways:
1. flexibility and configurability
Apache Ivy is essentially process agnostic and is not tied to any methodology or structure. Instead it provides the necessary flexibility and configurability to be adapted to a broad range of dependency management and build processes.
2. tight integration with Apache Ant
While available as a standalone tool, Apache Ivy works particularly well with Apache Ant providing a number of powerful Ant tasks ranging from dependency resolution to dependency reporting and publication.
The 2.0 release of Ivy has been a long time coming, after starting the effort with the move to an official Apache project over a year ago. There are a number of other changes in 2.0 beyond those mentioned above:
- Moved to a org.apache package structure.
- Naming convention changes related to Apache move
- 'Configuration' renamed to 'Settings'
- Defaults to Maven ibiblio repository
- Improved Ant integration
Re: In a nutshell...
Maven = Archetype based build system that also does dependency management.
Personally, I prefer Ivy because I feel it does dependency management better than Maven. I'm sure others will disagree with me and say they are equal or that maven does a better job.
In the end, if you have invested time/effort to learn maven and are over the learning curve it has, then I probably wouldn't add Ivy to the mix. However, if your build is an Ant build and you want to add dependency management, then I would reach for Ivy before trying to convert it to Maven.
My next step is to put Grapes (groovy.codehaus.org/Grape) to work with our Groovy scripts.