Локальный репозиторий библиотек

Разрабатывается библиотека(некое SDK). Необходимо сделать возможность подключения библиотеки через какой нибудь репозиторий (jcenter, maven или любой другой локальный, совместимый с Gradle). При этом необходимо чтобы транзитивные зависимости библиотеки тоже были внутри библиотеки(но чтобы у потребителя оставалась возможность исключать транзитивные зависимости). Например, на данный момент в библиотеки такие транзитивные зависимости(для примера):

dependencies {
    embed ext.rxJava2
    embed (name:'mymodule', ext:'aar')
}

embed - из fat-aar-android, мержит библиотеку в основной проект

Что имеем:

  1. Проект библиотеки (исходный код), который сам зависит от aar слепков, и некоторых сторонних библиотек.
  2. Закрытый GitLab в котором проект (на внутреннем сервере, доступ через VPN)

Для решения вопроса, вроде есть 3 варианта:

  1. Воспользоваться сервисами типа JitPack, даешь ссылку на свой GIT проект (+токен авторизации) и все автоматом собирается.

Но есть сложности:

  • с VPN
  • услуги платные(хотя это и не большая проблема)
  1. Создать свой репозиторий.

  2. Использовать fat-aar-android (сейчас так реализовано, но много проблем с разрешением конфликтов и т.д.)

Вопрос больше по второму варианту, как это можно сделать и в какую сторону копать? Может есть статьи (желательно на русском), где есть список таких проектов(репозиториев) которые можно развернуть у себя?

Начал читать про Sonatype Nexus. Но то что нужно ли это? В идеале конечно, чтобы локальный инструмент работал также как в первом пункте, скармливаешь ссылку на проект (ГИТ) и при каждом изменении ветки собирается "артефакт" который можно скачивать...

p.s. тут еще получается так, что все aar которые есть в dependencies библиотеки тоже должны быть в отдельных проектах и подключаться как артефакт из какого-то репозитория? т.е. уже в библиотеку подключаешь не aar, а прописываешь ссылку на артефакт в репозитории..?


Ответы (0 шт):