Apache Ivy Условия и неопределенности - PullRequest
4 голосов
/ 24 августа 2011

Я учусь, как дополнять свою сборку с помощью Ivy, используя метод "грубой силы", просто пытаясь запустить несколько примеров проектов.Я пролистал официальные документы и прочитал несколько онлайн-уроков, но задыхаюсь от нескольких терминов, которые, похоже, используются неопределенно, неоднозначно и / или противоречивым образом.Я просто ищу опытного знатока плюща, который поможет мне прояснить эти термины.

  1. Кэш "Resolution" против кэша "Repository" против кэша "Ivy"
  2. «Репозиторий плюща», в отличие от моего обычного SCM, который представляет собой сервер с SVN

В чем разница между этими 3 типами кэша?В чем разница между " Ivy Repository " и моим SVN?

Спасибо всем, кто может помочь!

1 Ответ

5 голосов
/ 25 августа 2011

Кэш "Resolution" против кэша "Repository" против кэша "Ivy"

Кэш ivy - это в основном папка, в которой ivy хранит артефакты и конфигурации.Если не настроен иначе , его можно найти в UserHome / .ivy2

Кэш ivy состоит из кеша разрешения и кеша репозитория.

Кэш репозитория содержит артефакты из репозитория, которые были загружены ivy.Он кэширует репозиторий, поэтому ivy не нужно будет запрашивать репозиторий каждый раз, когда он пытается разрешить / загрузить артефакт.Если он находит подходящий артефакт в кэше хранилища, он не будет запрашивать хранилище.Таким образом, экономия затрат на запрос хранилища.Если и как используется кэш, то он немного сложнее и зависит от зависимостей / конфигурации.

Кэш разрешения - это набор специфичных для ivy файлов, которые сообщают ivy, как был разрешен (загружен) артефакт.

«Репозиторий Ivy», в отличие от моего обычного SCM, который является сервером под управлением SVN

Репозиторий в мире ivy - это местоположение, содержащее файлы артефактов (jar).Это может быть локальная файловая система или веб-сервер.У него нет системы управления версиями.Каждая версия артефакта содержится в отдельной папке.Вы не можете зафиксировать артефакты, вы просто добавляете их в файловую систему.См. Терминологию

  org\artifact\version1\artifact.jar  
  org\artifact\version2\artifact.jar

Доступ к хранилищу осуществляется через resolver , который должен знать макет хранилища.

Из doc на кешах:

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.
...