I am finding out how to augment my build with Ivy utilizing a "brute pressure" approach to just looking to get a couple of sample projects ready to go. I have put within the official paperwork and browse several online lessons, but am choking on the couple of terms that appear for use vaguely, ambiguously and/or perhaps in conflicting ways in some way. I am just searching for a skilled Ivy connoisseur to assist bring some clearness to those terms for me personally.

  1. "Resolution" Cache versus. "Repository" Cache versus. "Ivy" Cache
  2. The "Ivy Repository", instead of my normal SCM the industry server running SVN

What are the differences between these 3 kinds of cache? What are the differences between your "Ivy Repository" and my SVN?

Because of anybody who are able to help!

"Resolution" Cache versus. "Repository" Cache versus. "Ivy" Cache

The ivy cache is essentially a folder, where ivy stores items and designs. Otherwise configured differently it are available in UserHome/.ivy2

The ivy cache consists from the resolution cache along with a repository cache.

The repository cache consists of the items from the repository, which were downloaded by ivy. It's caching the repository, to ensure that ivy will not have to query the repository each time it attempts to resolve/download an artefact. Whether it finds an appropriate artifact within the repository cache it won't query the repository. Thus saving the price to question the repository. If and just how the cache can be used is a little more difficult and is dependent around the dependencies/configuration.

The resolution cache is an accumulation of ivy-specific files, that tell ivy how an artifact was resolved (downloaded).

The "Ivy Repository", instead of my normal SCM the industry server running SVN

A Repository within the ivy world is really a location, which consists of items(jar) files. This is basically the local filesystem or perhaps a web server. It's no versioning system. Each version of the artifact is found in a seperate folder. You cannot commit items, you simply add these to the file system. Begin to see the terminology


A repository is utilized using a resolver, which needs to be aware of layout from the repository.

In the doc on caches:

Cache types
An Ivy cache is composed of two different parts:

    the repository cache
    The repository cache is where Ivy stores data downloaded from module repositories, along with some meta information concerning these artifacts, like their original location.
    This part of the cache can be shared if you use a well suited lock strategy.
    the resolution cache
    This part of the cache is used to store resolution data, which is used by Ivy to reuse the results of a resolve process.
    This part of the cache is overwritten each time a new resolve is performed, and should never be used by multiple processes at the same time. 

While there is always only one resolution cache, you can define multiple repository caches, each resolver being able to use a separate cache.