Если вы планируете выпустить lib, будет лучше не включать зависимые библиотеки в упакованный aar, а вместо этого добавлять те же зависимости компиляции, которые есть в скрипте lib build, внутри скрипта сборки приложения как таковые:
app build.gradle:
dependencies {
compile ':my-lib'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.facebook.android:facebook-android-sdk:4.14.1'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.google.code.gson:gson:2.8.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
compile 'com.google.android.gms:play-services:11.0.4'
}
Таким образом, пользователи вашей библиотеки не столкнутся с конфликтами слияния, когда они используют публичные библиотеки, как ваша библиотека, gradle автоматически разрешит их.
Если вы ищете лучший способ включить все зависимости в одну библиотеку: не делайте. Gradle не может разрешить конфликты слияния, если aar содержит определенную библиотеку lib, упакованную внутри, а приложение также зависит от lib и содержит методы вызова кода из lib
Подробнее вы можете прочитать здесь: Исключить jar-библиотеку из aar
И вот Генерация файла AAR со всеми зависимостями