
Dagger 2 сделал много полезного
* Избавил нас от рефлексии в Runtime, добавив вместо этого annotation processing во время сборки. Одна из больших проблем, что не было возможности его инкремтной сборки до Gradle 4.7.
* Сделал сгенерированный код читабельным, чтобы он был проще для понимания человеку.
К сожалению, за все это пришлось заплатить временем сборки проекта, но есть способ это исправить:
* Первое что надо сделать - обновиться до последней версии Dagger (на сегодня 2.19) и Gradle (4.10.2).
* Используя икрементальный режим annotation processor в Dagger 2
* Отключить форматирование генерируемого кода (это занимает около 40% времени работы annotation processor Dagger).
build.gradle
tasks.withType(JavaCompile).configureEach {
options.compilerArgs += [
"-Adagger.formatGeneratedSource=disabled",
"-Adagger.gradle.incremental=enabled"
]
}
// Для проектов с Kotlin где используется kapt
kapt {
arguments {
arg("dagger.formatGeneratedSource", "disabled")
arg("dagger.gradle.incremental", "enabled")
}
}