Возможны оба варианта. Вы можете создать модуль библиотеки в отдельном проекте и собрать и экспортировать его оттуда (ваш вариант 1). Вы можете экспортировать свою библиотеку с помощью задачи оболочки gradle assemble
. Например, если ваш библиотечный модуль называется brdroid
, выполните это из папки root вашего проекта:
./gradlew brdroid:assembleRelease
Это создаст файл brdroid-release.aar
в папке {project root}/brdroid/build/outputs/aar
. Затем вы можете скопировать файл aar в другой проект или загрузить его в менеджер пакетов. Либо вручную, либо, например, с помощью maven publi sh plugin .
Если вы загрузите его в диспетчер пакетов, вы можете добавить свою библиотеку как удаленную зависимость, как и с другими библиотеки, используя implementation
или api
+ имя вашего пакета, идентификатор артефакта и номер версии.
Для целей отладки проще использовать библиотечный модуль в проекте напрямую (это ваш вариант 2). Это означает, что модуль приложения и модуль библиотеки находятся в одном проекте бок о бок. В этом примере, если оба модуля находятся в одном проекте, вам необходимо добавить модуль brdroid
в качестве зависимости к project one
, добавив его в файл project one
build.gradle
:
implementation project(':brdroid')
Обратите внимание, что вы все еще можете экспортировать свою библиотеку как файл aar и опубликовать sh его, как в варианте 1.
И в этом сценарии все еще возможно сохранить модуль библиотеки в отдельном проекте и репозитории. и добавьте его в git -репозиторий и проект вашего приложения, используя git -подмодули . Это немного больше.
Использование git подмодулей
Пример использования git -подмодулей может выглядеть следующим образом: Давайте рассмотрим, что у нас есть два отдельных проекта git репозиториев:
My Library
, в котором есть только модуль библиотеки brdroid
android MyApplication
, в котором есть только модуль приложения app
android:
Чтобы добавить репозиторий MyLibrary
как git -подмодуль в репозиторий MyApplication
git, выполните это из папки MyApplication
root:
git submodule add -b master https://{url-to-My-Library-git-repository}
-b master
только указывает, какую ветвь отслеживать. Вы можете изменить его.
Это клонирует My Library
в новую подпапку, которая не отслеживается репозиторием MyApplication
. Он также создает два изменения, которые вам нужно зафиксировать, чтобы сделать их постоянными.
Затем откройте settings.gradle
из папки MyApplication
root и добавьте модуль brdroid в проект MyApplication
, изменение первой строки с:
include ':app'
на
include ':app', 'MyLibrary:brdroid'
MyLibrary
- это просто папка, в которой находится модуль brdroid
.
Также добавьте brdroid
как зависимость от модуля app
, добавив это в файл build.gradle модуля app:
implementation project(':MyLibrary:brdroid')
Теперь ваш результат должен выглядеть так:
Теперь app
и brdroid
находятся в одном проекте, но разработка brdroid
происходит в отдельном репозитории git.