Зеркальный репозиторий Maven с использованием программного обеспечения OSS (пробовал использовать Artifactory OSS) - PullRequest
0 голосов
/ 07 декабря 2018

Краткий обзор статус-кво:

  • У меня есть корпоративное хранилище maven, которое размещено в другом месте
  • Интернет-соединение с указанным хранилищем довольно медленное
  • Я бы хотел разместить кеш / зеркало на моем сайте, чтобы моя и моя команда могли загружать зависимости быстрее
  • У нас есть одна особенность, которая выделяется, потому что она имеет размер 8 ГБ, что означает, что она занимает около 40 минут.просто для загрузки

Итак, я попытался использовать Artifactory OSS, но:

  • Официальная функция «репликации репозитория» заблокирована за платой>> 3k $ / year.По сути, это то же самое, что и «удаленное хранилище», которое так или иначе активно кэширует.Примерно такая же ситуация с Sonatype Nexus OSS.
  • Я бы, в общем, согласился бы использовать простой «удаленный репозиторий» в Artifactory, но он ведет себя странно.
  • Предполагаемая функциональность заключается в том, что клиентзапрашивает зависимость от локального удаленного репозитория Artifactory, указывающего на фактический сервер вне сайта.Если он не кэширован, локальный сервер загружает его с внешнего сервера.Затем он подается клиенту локальным сервером
  • Когда запрашивается большая зависимость, локальный сервер начинает загрузку, и через ~ 30 секунд клиент получает тайм-аут сокета и останавливает всю сборку Gradle
  • Существует опция под названием «Хранить локально», которая при деактивации перенаправляет запрос на сторонний сервер и вообще не кэшируется
  • Я бы хотел, чтобы локальный серверначать кэширование, когда запрашивается зависимость, но отвечая, что зависимость не присутствует на этом сервере (что заставляет клиента смотреть на внешний сервер), или перенаправить запрос на внешний сервер, как это происходит при 'store localy'отключено

В конце концов, я не уверен, где проблема.Нужно ли настраивать Artifactory или Gradle по-другому?Есть ли что-то еще, что я мог бы использовать для создания зеркала?Полностью приемлемым решением будет запускать сценарий копирования каждую ночь, но я бы предпочел решить его с помощью Artifactory OSS.

1 Ответ

0 голосов
/ 07 декабря 2018

Я относительно уверен, что то, что вы хотите, невозможно ни с Artifactory, ни с Nexus.

Ваши требования довольно необычны.Я бы посчитал зависимость с 20 МБ "большой", и я никогда не видел одну более 100 МБ.Ваша вещь 8GB не баночка, верно?Nexus / Artifactory не предназначен для такого рода вещей.

Прежде всего, я бы поставил под сомнение 8 ГБ вещь.Что это?Почему он такой большой?

Если вы не можете это изменить, я бы регулярно запускал mvn dependency:get или что-то подобное на сервере сборки.Таким образом, на вашей Artifactory / Nexus (как правило) будет присутствовать соответствующая версия, и ваша сборка не прекратит работу.

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