On 04.11.2015 07:46, Jammy Chen wrote:
We have used ivy:cachepath for our compiles, test-runtime, but since we
had a lot of troubles on IVY 2.3.x and also with the IvyDE we decided to
switch to a folder based ivy:retrieve.
Also we are using a very simplistic eclipse plugin to reference all libs
from folders and have given up to work with IvyDE. We use instead:
https://github.com/dpalic/EclipseFolderClasspath
So now ivy retrieves all dependencies into folders named by
ivy-configuration names, and we only reference them in ANT and in
Eclipse (with the previous plugin).
So the behaviour is always the same and we have no possible missmatch in
ivy:cachepath (retrieved on every run of Ivy) vs. one ivy:retrieve for
multiple runs (build, test, runtime, packaging, ...)
ivy:cachepath is still used by us, but only for basic dependency-lookups
in the ANT-build. E.g. for building up a dependency-tree for PMD,
findbugs integration into ANT.
To your disk usage, yes the ivy:retrieve will bloat your disk usage, but
it will also provide you a clear overview of the files which you handle.
We have used ivy:report to generate a html report to see which lib and
version was retrieved, but it is still easier to glance through some
folders and to see which files are finally in my target folder.
So there is no clear recommendation. It depends on your complexity of
your projects. For higher complexity I would still prefer to use the
retrieve into ivy-config folders. For quick wins and for small projects
I would stick to ivy:cachepath.