Невозможно добавить файл JAR в .ivy кеш вручную - PullRequest
7 голосов
/ 15 марта 2011

Я пытаюсь вручную добавить файл jucene jar в мой локальный репозиторий ivy.У меня есть другие jar-файлы apache, поэтому в существующей папке .ivy2 \ cache \ apache.org \ я создал папку с именем lucene, а внутри нее - папку с именем jars.Затем я поместил банку с именем lucene-3.0.3.jar в папку с банками.Следующий шаг Я создал следующий файл ivy-3.0.3.xml в папке lucene:

<?xml version="1.0" encoding="UTF-8"?>

<ivy-module version="1.0">
    <info organisation="apache.org" module="lucene" revision="3.0.3" status="release" publication="20090416105712">
   </info>
   <publications>
      <artifact name="lucene-3.0.3" type="jar" ext="jar"/>
   </publications>
</ivy-module>

Затем я пытаюсь ссылаться на него из такого проекта:

<dependency org="apache.org" name="lucene" rev="3.0.3"/>

Но я получаю сообщение об ошибке: «неразрешенная зависимость: apache.org # lucene; 3.0.3: не найден»

Я могу найти другие зависимости в моих папках кэша .ivy2, только в этойсозданный вручную, вызывает проблемы.

Что-то, что я пропустил?

Ответы [ 2 ]

2 голосов
/ 16 марта 2011

Я согласен с Марком, вы должны поместить файл в локальный репозиторий, а не в кеш. Тем более, что ожидается, что кеш может быть (и часто) удаляется в любое время.

Однако, чтобы ответить на ваш вопрос, наиболее вероятной причиной вашей ошибки является то, что иерархия папок не соответствует ожидаемому шаблону. По умолчанию кеш раскладывается следующим образом:

[organisation]/[module]/[revision]/[type]s/[artifact].[ext]

Таким образом, вам нужно переместить файл в следующий каталог, чтобы устранить эту ошибку:

.ivy2\cache\apache.org\lucene\3.0.3\jars\lucene.jar

Иногда шаблон по умолчанию изменяется на основе файлов настроек, поэтому единственный способ убедиться в ожидаемом шаблоне - это посмотреть на другие jar-файлы в вашем кэше (например, сейчас мой кэш имеет часть [revision] конец имени файла, в остальном все то же самое).

Однако, я согласен с Марком, хотя вы действительно не хотите вручную добавлять вещи в кеш. Вместо этого добавьте их в локальный репозиторий по умолчанию ИЛИ еще лучше, создайте свой собственный базовый репозиторий.

1 голос
/ 15 марта 2011

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

Я предлагаю вам поместить файлы в локальное хранилище ivy, которое хранится (по умолчанию) рядом с кешем:

$HOME/.ivy2/local

Ваш пример банку нужно хранить здесь:

$HOME/.ivy2/local/org.apache/lucene/3.0.3/jars/lucene.jar
...