Локальный репозиторий библиотек
Разрабатывается библиотека(некое SDK). Необходимо сделать возможность подключения библиотеки через какой нибудь репозиторий (jcenter, maven или любой другой локальный, совместимый с Gradle). При этом необходимо чтобы транзитивные зависимости библиотеки тоже были внутри библиотеки(но чтобы у потребителя оставалась возможность исключать транзитивные зависимости). Например, на данный момент в библиотеки такие транзитивные зависимости(для примера):
dependencies {
embed ext.rxJava2
embed (name:'mymodule', ext:'aar')
}
embed - из fat-aar-android, мержит библиотеку в основной проект
Что имеем:
- Проект библиотеки (исходный код), который сам зависит от aar слепков, и некоторых сторонних библиотек.
- Закрытый GitLab в котором проект (на внутреннем сервере, доступ через VPN)
Для решения вопроса, вроде есть 3 варианта:
- Воспользоваться сервисами типа JitPack, даешь ссылку на свой GIT проект (+токен авторизации) и все автоматом собирается.
Но есть сложности:
- с VPN
- услуги платные(хотя это и не большая проблема)
Создать свой репозиторий.
Использовать fat-aar-android (сейчас так реализовано, но много проблем с разрешением конфликтов и т.д.)
Вопрос больше по второму варианту, как это можно сделать и в какую сторону копать? Может есть статьи (желательно на русском), где есть список таких проектов(репозиториев) которые можно развернуть у себя?
Начал читать про Sonatype Nexus. Но то что нужно ли это? В идеале конечно, чтобы локальный инструмент работал также как в первом пункте, скармливаешь ссылку на проект (ГИТ) и при каждом изменении ветки собирается "артефакт" который можно скачивать...
p.s. тут еще получается так, что все aar которые есть в dependencies библиотеки тоже должны быть в отдельных проектах и подключаться как артефакт из какого-то репозитория? т.е. уже в библиотеку подключаешь не aar, а прописываешь ссылку на артефакт в репозитории..?