title: Better Dagger dependency injection based on build type and flavor?
body: <p>I am using aproach to provide modules to Dagger described in answer of this question <a href="https://stackoverflow.com/questions/19329584/android-customize-workflow-for-product-flavors">Android Customize Workflow for Product Flavors</a> </p>
  
  <p>Our approach is a bit different - we have <code>Modules</code> in <code>debug</code> build type in <code>src/debug/java</code> and in <code>release</code> build type in <code>src/release/java</code>. Our main module is called <code>ApplicationModule</code> it includes all other.</p>
  
  <p><code>Modules</code> in <code>src/debug/java</code> provides some custom behaviour for debugging, logging etc and overrides <code>ApplcationModule</code>.</p>
  
  <p>Now we have a need to have custom behaviour based on application flavor.</p>
  
  <p>What would be correct approach to do that?</p>
  
  <p>For example flavors A to C should provide custom behaviours, while flavors D to F should provide basic, default behaviour.</p>
  
  <p>So far I came up with such.</p>
  
  <ul>
  <li>All flavors (not build types) has same class in <code>src/flavorX/java/com.application.FlavorModule</code></li>
  <li>To avoid code duplication only flavors A to C provide custom behavior while other completely empty so that project would compile. And default behaviour is provided my module in <code>src/main/java</code></li>
  </ul>
  
  <p>Is there a better way to achieve such result? Because I don't like empty <code>src/flavorX/java/com.application.FlavorModule</code> and don't like code duplication...</p>