
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")
  }
} 
         
       
      







