Начиная с версии 3.0.0 Gradle Plugin, есть более хороший способ сделать это. Мы можем контролировать, доступна ли каждая зависимость только для текущего модуля или для текущего модуля И любых модулей, которые зависят от него. Это позволит нам легко обмениваться зависимостями между модулями в проекте.
Вот как мы использовали для объявления зависимостей:
compile 'com.android.billingclient:billing:1.2'
Вот новые конфигурации, которые должны заменить компиляцию:
implementation 'com.android.billingclient:billing:1.2'
эта зависимость используется только в этом modAPI
api 'com.android.billingclient:billing:1.2'
эта зависимость также будет доступна в любых сборках, которые зависят от этого модуля. Предполагая, что у нас есть модуль с именем 'library', который используется модулем 'app', мы можем использовать конфигурацию API, чтобы объявить, что зависимость должна использоваться совместно с любым модулем, который зависит от нее.
библиотечный модуль build.gradle
dependencies {
// dependencies marked 'implementation' will only be available to the current module implementation 'com.squareup.okhttp:okhttp:2.4.0'
// any dependencies marked 'api' will also be available to app module
api 'com.android.billingclient:billing:1.2'
}
app module build.gradle:
dependencies {
// declare dependency on library module
implementation project(':library')
// only need to declare dependencies unique to app
implementation 'example.dependency:1.0.0'
}
Пожалуйста, смотрите это для получения дополнительной информации и диаграмм.
https://medium.com/@julesrosser/handling-gradle-dependencies-in-multiple-module-android-projects-9e590c3d20dc