Как разделить зависимости gradle между приложением Android и его библиотекой? - PullRequest
0 голосов
/ 30 октября 2018

В моем приложении Android у меня есть реализация биллинга Google Play, она определена в build.gradle как:

реализация 'com.android.billingclient: биллинг: 1,2'

Кроме того, у меня есть собственная библиотека, созданная для совместного использования кода в моем проекте. В этой библиотеке я хочу реализовать код реализации биллинга Google Play. Для этого я также определил библиотеку биллинга в файле библиотеки build.gradle.

Я использую версию Gradle:

com.android.tools.build: Gradle: 3.2.0 '

Есть ли возможность определить библиотеку только в одном месте (build.gradle) и использовать ее из обоих мест?

1 Ответ

0 голосов
/ 30 октября 2018

Начиная с версии 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...