Ivy 2.0.0

A simple yet powerful dependency manager.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!

What's new in Ivy 2.0.0:

  • enhanced Maven2 compatibility;
  • improved cache management, including dynamic revision caching with fine grained TTL;
  • improved concurrency support with cache locking and atomic publishing;
  • namespace aware validation, allowing you to use validation with extra attributes;
Read full changelog
send us
an update
The Apache License 2.0 
3.3/5 21
Xavier Hanin
ROOT \ Programming \ Assembler Tools
Ivy project is a very powerful dependencies manager oriented toward java dependency management, even if it can be used to manage dependencies of any kind.

For sure, Ivy is integrated with the most popular build management system for java projects.

For simple cases, ivy is really simple to use. Declare your dependencies, and that's all. See the quick start tutorial to check yourself, it should take less than 5 minutes !

Ivy can thus be used to bring the dependency management feature of maven to ant build files, for those of you who already use ant and who do not want to setup a maven project. But Ivy does not stop here, and provides much more great features !

Ivy is able to produce mainly two kind of reports: html reports and graph reports. HTML reports gives you a good understanding of what ivy did, and which dependencies your project depends upon. The graph reports let you have a good overview of the transitive dependencies (see below) and conflicts in your project.

Ivy most common use is to resolve dependencies and copy them in the lib dir of your project. Once copied, your build does not depend on ivy any more. Thus you can easily migrate existing builds using the lib dir pattern to store dependencies. Moreover, you can easily deliver your project with its dependencies so that the build file does not depend on ivy.

With Ivy, you usually do not have to adapt your project to ivy structure, it's ivy which can be adapted to your environment.

Even if Ivy comes with a lots of default values to work out of the box, you can change many things in ivy. For sure, the dependencies repositories possibilities covers a lot of uses (file system, url based, repository chaining, ...). But that's not all. You can change the way ivy finds latest versions of your dependencies, you can change of conflict manager, you can choose if you want ivy to copy deps in your project libs or to use them directly from ivy cache, ...

When ivy does not what you want out of the box, you can often extend it to solve your problem. For instance, you can plug your own repository (like scott haug did for a svn repository now available in ivy tools). But you can also defines your own latest strategy and your own conflict manager. See how to extend ivy in the reference doc.

Imagine you have a component that you often reuse in your software developments. Imagine that this component has itself dependencies. Then with classical dependencies management, each time you use this component in your software you have to declare it as a dependency, but also all its dependencies.

With ivy it's different: you simply write a dependency file once for the component, declaring its own dependencies, then anytime you want to use this component you simply have to declare a dependency on it.

And this is even more powerful if the component your software depends on changes of dependencies during its own development. Then, without ivy, you have to maintain all your components dependencies declaration each time the dependencies of this component change. With ivy, you update the ivy file of the component and that's it !

If you want to quickly start using this feature or simply see it in action with real world examples, check the official repository: ivyrep

Last updated on January 23rd, 2009

#dependency manager #build assistent #manage dependencies #Ivy #dependency #manager #build

Add your review!