Ivy is an open source, java based, simple but powerful dependency manager fully integrated with ant. The version 0.5 is its first public version. Key features are: ant integration, ibiblio repository integration, dependencies of dependencies support.
Key features are :
- simple to use
- extremely flexible
- easily extensible
- xml based
- integrated with ant
- ready to use with maven ibiblio repository
- dependencies of dependencies
- eases continuous integration
- make your software component a lot simpler to use
- free (BSD license) !
Download and information on : http://ivy.jayasoft.org
- Ant-Dependencies from HTTP Unit by Kim Pepper on January 13 2005 16:48 EST
- Ivy 0.5 Released by Brendan Lawlor on January 14 2005 09:36 EST
- Ivy 0.5 Released by Brendan Lawlor on January 14 2005 10:20 EST
- ivy and neede jdk version by Arco Zen on January 27 2005 09:29 EST
I have been using the ant-dependencies task http://www.httpunit.org/doc/dependencies.html which works quite well. It allows you to create paths and filesets that can be used in other sections of the build script.
Does Ivy support this?
In fact, Ivy simply copies your dependencies wherever you want, and the way you want in your filesystem. Usually you copy them in a lib directory in your project directory. Then you can build a path or a fileset using standard ant features. It is not as automatic as with httpunit ant-dependencies task, but it is not so complicated. And the advantage is that your build file does not heavily depend on ivy. If you want to deliver a version without ivy, you can deliver the dependencies copied by ivy with your version, remove the ivy call, and your paths and filesets are still ok since they do not depend on ivy.
Moreover, ivy offers some features I haven't found in ant-dependencies, and especially the dependency of dependency feature which is very useful when you often reuse components which themselves have dependencies. Write an ivy file for this component once, and simply say that you depend on this component, and you'll get its dependencies too. Very nice, especially if the dependencies of this component often change, which is often the case especially in contunuous integration environments.
Has anybody compared this to Savant, or is Ivy offering different functionality?
I do not know Savant very well, but I think Ivy is offering more functionalities. Particularly, Ivy provides a continuous integration feature which enable to depend on the latest version of a dependency, which doesn't seem to be possible with Savant.
Moreover, even if both Savant and Ivy provide a dependencies of dependencies management feature, there is a notion in Ivy called configuration which solves some problems with it. In Savant, as far as I know, when you declare to depend on a component, you get all its depedencies. In Ivy, the component can declare many "configurations", which may be seen as "way of use the component". And in each configuration, the dependencies of the component may be different. Then when you declare that you depend on a component, you can also say which configuration of this component you depend on, getting only the dependencies you really need.
Sadly, this feature is poorly documented for the moment, but it should change soon !
Anyone else having difficulty downloading? I get to the http://www.jayasoft.fr/org/modules/ivy/download.php page and I see nothing.
Which browser do you use ? We have tested with firefox 1.0 and IE 6.0, and it's ok for us.
If you still do not manage to access the download page, here are the direct links to the zips :
ivy-0.5-bin.zip (731 kB)
ivy-0.5-src.zip (501 kB)
ivy-0.5-src-withdep.zip (764 kB)
And feel free to post on the forum or to send an e-mail to get faster response to such issues.
I'm tryng to correctly configure my environment to use ivy.
What jdk release is required?
I would use jdk 1.3.1 but when I try to start a simple build containg ivy calls, I obtain:
class not Found: java/lang/CharSequence (and it is a 1.4 new interface).
Is there a way to use jdk1.3 and ivy without compatibility problems?
Thanks a lot!