Если вы собираете библиотеку, используя maven, вам нужно добавить плагин maven для Android.Таким образом, вы можете упаковать его как файл AAR.В этом случае, по моему опыту, область компиляции не распространяет зависимости вашей библиотеки в путь, вам все равно нужно добавить флаг transitive = true.
веб-сайт плагина: https://simpligility.github.io/android-maven-plugin/plugin-info.html
Пример POM: https://github.com/fcopardo/EasyRest/blob/master/pom.xml
Теперь, если вы используете gradle для создания библиотеки, вам нужно понять, как gradle упаковывает зависимости.Есть два способа:
реализация: с помощью этого слова зависимость сохраняется в пути библиотеки.Это не будет выставлено на пути потребителя.Следовательно, потребительский проект потерпит неудачу, если необходимо найти зависимость библиотеки.Например, если вы собираетесь возвращать наблюдаемые RxAndroid, компиляция завершится неудачей, поскольку компилятор не сможет найти классы RxAndroid, указанные в сигнатуре методов возврата.С другой стороны, если зависимость библиотеки используется только для внутреннего использования (например, вы создаете модуль rest с использованием модернизации и выставляете только RxJava в возвращаемых сигнатурах), компиляция будет возможна.
api: является точнымпротивоположность реализации.Зависимости, помеченные как api, попадут на путь потребителя, поэтому его необходимо использовать каждый раз, когда вы выставляете одну из своих зависимостей.Используя тот же пример, что и раньше, вы должны импортировать RxAndroid с api и модифицировать с реализацией.Это должно позволить вам использовать библиотеку без каких-либо дополнительных импортов или флагов.
Имейте в виду, плагин maven для Android поддерживает формат проекта gradle начиная с версии 4, поэтому вы можете иметь как файл POM, так и .gradle.файл.