Ivy : Java Glossary

At first I thought Ivy added GenJar-like abilities to
ANT (ANeat Tool)
to chase dependencies to figure out which class files need to be
bundled in jars to do builds, but on second reading I don’t
think it does. It just fetches the latest jars from Maven
repositories. I suspect it thinks of dependecies on the jar level, not
the class level. It produces dependency diagrams of which classes use
which classes. For large projects, you can precompute dependencies of
a class so they don’t have to be recomputed every time you use
the class. It can find necessary modules in a Maven repostitory. There
is also a plug-in called Apache IvyDE to
build Ivy into the Eclipse
IDE (Integrated Development Environment).
Ivy downloads libraries for you from Maven repositories and keeps
them in a cache, downloading them only when they change.

The big catch with tools like Ivy, Gradle and Maven
is they are not concerned about deciding precisely which class files
should go into a jar or even which packages should be included.
They look at a bigger picture, namely which entire jars need to be
present (or bundled in). They are more concerned with dealing with the
complexities of not only getting the right jar, but the right version
of the jar. They are for big projects not creating an optimally packed
jar for an Applet.