title: How to include different .aar depending on the android build variant
body: <p>I am having 3 .aar files which are included in a module and the aar module in included in a <strong>app</strong> module.</p>
  
  <p>Currently I have 3 build variants and for specific build variant I want to include specific aar.</p>
  
  <p>Lets Suppose:
  I have 3 aars naming
  xyz, pqr, def</p>
  
  <p>xyz to be included in 123 build variant
  pqr to be included in 456 build variant
  def to be included in 789 build variant</p>
  
  <p><strong>aar module build.gradle</strong></p>
  
  <pre><code>File xyzFile= file("xyz.aar")
  File pqrFile = file("pqr.aar")
  File defFile = file("def.aar")
  
  
  configurations.maybeCreate("xyz")
     artifacts.add("xyz", xyzFile)
  configurations.maybeCreate("pqr")
   artifacts.add("pqr", pqrFile )
  configurations.maybeCreate("def")
      artifacts.add("def", defFile )
  </code></pre>
  
  <p><strong>app project build.gradle</strong></p>
  
  <pre><code>apply plugin: 'com.android.application'
  
  configurations {
      xyzDebugCompile
      xyzReleaseCompile
      xyzReleaseUnsignedCompile
  
      pqrDebugCompile
      pqrReleaseCompile
      pqrReleaseUnsignedCompile
  
      defDebugCompile
      defReleaseCompile
      defReleaseUnsignedCompile
  
  }
  
  android {
      compileSdkVersion 24
      buildToolsVersion "24.0.0"
     =
  
      lintOptions {
          abortOnError false
      }
  
      defaultConfig {
          applicationId "cm.ez.eia"
          minSdkVersion 21
          targetSdkVersion 24
          versionCode 1
          versionName '0.9.2'
          multiDexEnabled true
      }
      buildTypes {
          debug {
              minifyEnabled false
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
              applicationVariants.all { variant -&gt;
                  variant.outputs.each { output -&gt;
                      project.ext { appName = 'FA-Comm' }
                      def newName = output.outputFile.name
                      newName = newName.replace("app-", "$project.ext.appName-")
                      output.outputFile = new File(output.outputFile.parent, newName)
                  }
              }
  
          }
          release {
              debuggable false
              jniDebuggable false
              applicationVariants.all { variant -&gt;
                  variant.outputs.each { output -&gt;
                      project.ext { appName = 'FA-Comm' }
                      def newName = output.outputFile.name
                      newName = newName.replace("app-", "$project.ext.appName-")
                      output.outputFile = new File(output.outputFile.parent, newName)
                  }
              }
  
              minifyEnabled true
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
  
          releaseUnsigned {
              debuggable false
              jniDebuggable false
              applicationVariants.all { variant -&gt;
                  variant.outputs.each { output -&gt;
                      project.ext { appName = 'FA-Comm' }
                      def newName = output.outputFile.name
                      newName = newName.replace("app-", "$project.ext.appName-")
                      output.outputFile = new File(output.outputFile.parent, newName)
                  }
              }
              minifyEnabled true
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
      }
      dexOptions {
          javaMaxHeapSize "1g" //specify the heap size for the dex process
          preDexLibraries = false //delete the already predexed libraries
      }
  
  
      productFlavors {
          xyz {
              applicationId 'com.fieldaware.communicator'
              minSdkVersion 21
              targetSdkVersion 24
          }
  
  
          def {
              applicationId 'com.fieldaware.communicator'
              minSdkVersion 21
              targetSdkVersion 24
          }
          pqr {
              applicationId 'com.fieldaware.communicator'
              minSdkVersion 21
              targetSdkVersion 24
          }
      }
  }
  
  dependencies {
      compile fileTree(include: ['*.jar'], dir: 'libs')
      compile project(':android-common-master')
      compile 'com.android.support:appcompat-v7:24.2.1'
  
      compile 'com.squareup.okhttp:okhttp:2.5.0'
      compile 'com.squareup.okhttp:okhttp-urlconnection:2.5.0'
      compile 'com.android.support:multidex:1.0.0'
      compile 'com.google.android.gms:play-services-ads:9.4.0'
      compile 'com.google.android.gms:play-services-auth:9.4.0'
      compile 'com.google.android.gms:play-services-gcm:9.4.0'
  
  
  
      //Aar Configs
      xyzDebugCompile project(path:':sdk',configuration: 'xyz')
      xyzReleaseCompile project(path:':sdk',configuration: 'xyz')
      xyzReleaseUnsignedCompile project(path:':sdk',configuration: 'xyz')
  
  
      pqrDebugCompile project(path: ':sdk', configuration: 'pqr')
      pqrReleaseCompile project(path: ':sdk', configuration: 'pqr')
      pqrReleaseUnsignedCompile project(path: ':sdk', configuration: 'pqr')
  
      defDebugCompile project(path: ':sdk', configuration: 'def')
      defReleaseCompile project(path: ':sdk', configuration: 'def')
      defReleaseUnsignedCompile project(path: ':sdk', configuration: 'def')
  }
  </code></pre>
  
  <p>I want to include the specific .aar file according to the specific build variant.</p>
  
  <p>This code is fetching incorrect aar files. Please suggest any solution</p>