Использовали ли вы Nexus Repository Manager в своей работе?

«Использовали ли вы Nexus Repository Manager в своей работе?» — вопрос из категории DevOps, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я использовал Sonatype Nexus Repository Manager в качестве корпоративного артефактного репозитория.

Основные сценарии использования:

  1. Проксирование публичных репозиториев (CocoaPods, Maven Central): Для кэширования зависимостей, повышения скорости сборки и независимости от внешних сетей.
  2. Хостинг приватных артефактов: Публикация внутренних библиотек, фреймворков или pod-спецификаций.
  3. Управление зависимостями: Контроль версий и политик доступа.

Практический опыт:

  • Настройка клиента (CocoaPods):

    # Podfile
    source 'https://nexus.internal.company.com/repository/cocoapods-public/' # Прокси Nexus
    source 'https://nexus.internal.company.com/repository/cocoapods-private/' # Приватные pods
    # source 'https://cdn.cocoapods.org/' - отключен в пользу прокси
  • Публикация артефактов:

    # Пример публикации pod-спецификации через curl
    curl -u user:token -X POST "https://nexus.internal.company.com/service/rest/v1/components?repository=cocoapods-private" 
         -F "podspec=@MyLibrary.podspec"

    Или настройка публикации через CI/CD (например, GitLab CI, Jenkins).

  • Администрирование: Настройка cleanup-политик для удаления старых артефактов, управление пользователями и ролями.

  • Устранение неполадок: Решение проблем с аутентификацией, кэшированием зависимостей и конфликтами версий.

Nexus — ключевой инструмент в DevOps-цепочке для обеспечения надежности, скорости и безопасности сборок.