Мультимодульное android приложение с Dagger2 без использования `kapt` в функциональном модуле - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть приложение Android со следующей настройкой:

2 модуля Gradle: app и feature (только что начал модульную работу, и это первый из многих функциональных модулей)

В модуле функции FeatureModule, который представляет собой кинжал @Module, предоставляющий зависимости для функции.

В модуле app AppComponent, который обрабатывает все зависимости, имея ссылку на FeatureModule (@Component(modules = [...,FeatureModule::class]))

Работает нормально. Проблема в том, что мне нужны эти строки в обоих build.gradle s модуля:

apply plugin: 'kotlin-kapt'
....
implementation 'com.google.dagger:dagger-android-support:2.22.1'
implementation 'com.google.dagger:dagger:2.22.1'
kapt 'com.google.dagger:dagger-compiler:2.22.1'
kapt 'com.google.dagger:dagger-android-processor:2.22.1'

Насколько я знаю, добавление kapt ко всем функциональным модулям значительно замедляет сборку (я мог бы быть неправым в этом Так что я хочу, чтобы эти строки были только в build.gradle:

implementation 'com.google.dagger:dagger-android-support:2.22.1'
implementation 'com.google.dagger:dagger:2.22.1'

этого функционального модуля. Как вы думаете, я должен создать отдельный @Component для функционального модуля (и других функциональных модулей в будущем) или достаточно иметь отдельный Dagger @Module для них?

На самом деле я пытался создать @Component, но я нашел только примеры об этом для настройки @Component.Builder, и я использую новый @Component.Factory one.

Единственная причина почему я рассматриваю компонент так, чтобы я мог дать другое @Scope для функции, но я не думаю, что хочу сделать это сейчас. Вы знаете о какой-либо другой причине для меня, чтобы сделать это?

Заранее спасибо!

...