Подтвердить что ты не робот

Разрешение зависимостей Айви Айви при отключении/отключении?

Как я могу заставить Ivy разрешать зависимости (включая зависимости с changing="true") из локального кеша при отключении/отключении?

Я работаю над проектом на основе Java с открытым исходным кодом, который использует Apache Ivy для разрешения и загрузки сторонних зависимостей. Проект build.xml имеет цель ant с именем resolve, которая загружает Ivy (если необходимо), а затем использует Ivy для извлечения необходимых банок.

Все работает отлично, когда онлайн. Однако, без доступа в Интернет, ant resolve выходит из строя, даже если требуемые банки находятся в локальном кэше Ivy (~/.ivy2/cache). Похоже, что Ivy пытается подключиться к репозиторию Maven для обновления зависимостей changing="true".

Ошибка, которую я получаю, похожа на следующую:

[ivy:retrieve] You probably access the destination server through a proxy server that is not well configured.
[ivy:retrieve] You probably access the destination server through a proxy server that is not well configured.
[ivy:retrieve] 
[ivy:retrieve] :: problems summary ::
[ivy:retrieve] :::: WARNINGS
[ivy:retrieve]  Host repo.example.com not found. url=http://repo.example.com/exampleorg/examplename/examplerev/ivys/ivy.xml
[ivy:retrieve]  Host repo.example.com not found. url=http://repo.example.com/exampleorg/examplename/examplerev/jars/examplename.jar
[ivy:retrieve]          module not found: exampleorg#examplename;examplerev
[ivy:retrieve]  ==== local: tried
[ivy:retrieve]    ~/.ivy2/local/exampleorg/examplename/examplerev/ivys/ivy.xml
[ivy:retrieve]    -- artifact exampleorg#examplename;examplerev!examplename.jar:
[ivy:retrieve]    ~/.ivy2/local/exampleorg/examplename/examplerev/jars/examplename.jar
[ivy:retrieve]  ==== shared: tried
[ivy:retrieve]    ~/.ivy2/shared/exampleorg/examplename/examplerev/ivys/ivy.xml
[ivy:retrieve]    -- artifact exampleorg#examplename;examplerev!examplename.jar:
[ivy:retrieve]    ~/.ivy2/shared/exampleorg/examplename/examplerev/jars/examplename.jar
[ivy:retrieve]  ==== repo: tried
[ivy:retrieve]    http://repo.example.com/exampleorg/examplename/examplerev/ivys/ivy.xml
[ivy:retrieve]    -- artifact exampleorg#examplename;examplerev!examplename.jar:
[ivy:retrieve]    http://repo.example.com/exampleorg/examplename/examplerev/jars/examplename.jar
[ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]          ::          UNRESOLVED DEPENDENCIES         ::
[ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]          :: exampleorg#examplename;examplerev: not found
[ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] 
[ivy:retrieve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

BUILD FAILED
~/exampleproj/build.xml:123: impossible to resolve dependencies:
        resolve failed - see output for details

Выполнение ant -verbose resolve, как было предложено предупреждением, выводит следующую строку на выходе:

[ivy:retrieve] don't use cache for exampleorg#examplename;examplerev: changing=true

Как я могу заставить Ivy разрешать зависимости changing="true" из кэша в автономном режиме, но продолжать запрашивать репозиторий, каждый из которых создается в Интернете?

4b9b3361

Ответ 1

Ответ на вопрос ответил, но это не очевидно.

Попробуйте выполнить настройку сборки для свойства ivy.cache.ttl.default из командной строки:

ant -Divy.cache.ttl.default=eternal build

Источники: