Gymterview
middle

Какие типы репозиториев существуют в Nexus?

Тип репозитория в Nexus — это классификация, определяющая, откуда берутся артефакты и как они хранятся. В Nexus существуют три типа репозиториев: hosted, proxy и group.

Аналогия с библиотекой: hosted — это фонд собственных рукописей, которые вы написали и храните у себя. Proxy — это межбиблиотечный абонемент, когда по запросу читателя вы заказываете книгу из другой библиотеки и оставляете копию у себя. Group — это единый каталог, объединяющий и рукописи, и заказанные книги, чтобы читатель искал в одном месте.

1. Hosted (размещённый)

Хранит артефакты, загруженные непосредственно в Nexus. Используется для приватных артефактов организации.

Примеры:

  • maven-releases — релизные версии (1.0.0, 2.1.3). Обычно не позволяет перезаписывать уже загруженный артефакт — обеспечивает неизменяемость релизов.
  • maven-snapshots — snapshot-версии (1.0.0-SNAPSHOT). Позволяет перезаписывать — каждая сборка обновляет snapshot.

2. Proxy (прокси)

Проксирует и кэширует артефакты из удалённых публичных репозиториев.

  • При первом запросе скачивает артефакт из внешнего репозитория и сохраняет в локальный кэш.
  • Последующие запросы отдаются из кэша — быстрее и не зависят от доступности внешнего источника.

Примеры:

  • maven-central — прокси для Maven Central.
  • docker-hub — прокси для Docker Hub.
  • npm-registry — прокси для npmjs.com.

3. Group (групповой)

Объединяет несколько hosted и proxy репозиториев под одним URL. Клиент (Maven, Gradle) настраивается на один URL, а Nexus автоматически ищет артефакт во всех входящих репозиториях.

Пример: maven-public объединяет maven-releases, maven-snapshots и maven-central.

Схема взаимодействия

Пример
Maven/Gradle  →  maven-public (group)
                    ├── maven-releases (hosted)   ← Ваши релизы
                    ├── maven-snapshots (hosted)   ← Ваши snapshot'ы
                    └── maven-central (proxy)       ← Кэш Maven Central

Разработчик настраивает один URL (maven-public) и получает доступ ко всем артефактам: и своим, и публичным.

Сравнение типов репозиториев

Тип Источник артефактов Перезапись Основное назначение
Hosted Загружаются пользователями/CI Releases — нет, Snapshots — да Хранение собственных артефактов
Proxy Скачиваются из внешних репозиториев Нет (кэш обновляется по политике) Кэширование внешних зависимостей
Group Агрегация других репозиториев Не хранит артефакты Единая точка доступа

Вывод

Три типа репозиториев в Nexus образуют полную картину управления артефактами: hosted для своих, proxy для чужих, group для единого доступа. Правильная организация репозиториев — основа стабильной CI/CD инфраструктуры.

На собеседовании: классический вопрос — назвать три типа репозиториев и объяснить разницу. Обязательно упомяните group-репозиторий и зачем он нужен — это часто забывают.