Кэширование зависимостей Gradle в каталоге проекта

1

У меня есть некоторые зависимости от Центрального репозитория Maven в моем проекте. Поэтому я подумал, что, если какая-либо зависимость будет удалена из Maven Central и других репозиториев (GitHub), и я не смогу найти эту зависимость где-нибудь и построить свой проект?

Я хочу добавить локальный кэш зависимостей в git-репозиторий моего проекта, чтобы каждый мог клонировать этот репозиторий и строить мой проект в автономном режиме. Может быть, в Cocoapods. Как я могу это сделать?

Теги:
maven
gradle
dependency-management

2 ответа

1

В корпоративной среде вы будете использовать диспетчер хранилища, такой как Archiva, Artifactory или Nexus. Вы можете настроить эти инструменты для работы в качестве прокси для публичных репозиториев, чтобы все необходимые артефакты были кэшированы по требованию.

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

Если менеджер репозитория слишком много для вас, вам нужно самостоятельно управлять локальным репозитаром.

  • 0
    Мне нравится, как управление зависимостями осуществляется с помощью Cocoapods или NuGet. Используя эти инструменты, я записываю зависимости в конкретный файл (Podfile или добавляю их через Visual Studio или командную строку NuGet), а затем они загружаются из удаленного репозитория в определенную папку проекта, и я могу добавить их в систему контроля версий. У меня нет корпоративной среды, и я не хочу самостоятельно управлять зависимостями с помощью хранилища плоских каталогов.
  • 1
    Насколько я знаю, разработчики iOS все еще обсуждают, следует ли проверять зависимости Pod в системе контроля версий. В общем, это просто разные подходы к одной и той же проблеме. Это невозможно сделать в Gradle таким способом. Вы можете настроить gradle для загрузки зависимостей в определенную папку и добавить эту папку в качестве местоположения зависимостей. Смотрите здесь: forums.gradle.org/gradle/topics/…
1

У вас уже есть локальный repositories maven, добавьте mavenLocal() в раздел repositories проектов. Я сомневаюсь, что какая-либо зависимость от maven или других публичных размещенных репозиториев может быть удалена, но лучший способ предотвратить это из-за этого - разместить собственный repo- artifactory например. Другим способом является добавление всех зависимостей в систему управления версиями и настройка gradle для чтения зависимостей из плоского репозитория файлов. Вот целая глава о репозиториях в документах gradle.

  • 0
    Пожалуйста, смотрите мой комментарий к ответу @Steffen
  • 0
    Зависимости в плоском каталоге могут иметь свои собственные зависимости, и мне придется самостоятельно искать все дерево зависимостей, чтобы построить и запустить мой проект. Но я хочу использовать преимущества Gradle-управления зависимостями, а также добавить кеш добавления зависимостей в исходную консоль, чтобы любой мог построить проект без подключения к Интернету или доступа к артефакту, а также, если в будущем некоторые зависимости будут удалены из Maven Central. ,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню