web-dev-qa-db-fra.com

Comment obtenir le type de construction actuel à Gradle

Ma question est très directe et facile à comprendre.

Question

Dans Gradle, existe-t-il un moyen d'obtenir le type de build actuel lors de l'exécution. Par exemple, lors de l'exécution d'une tâche d'assemblage Debug, les tâches du fichier build.gradle peuvent-elles prendre des décisions en fonction du fait que cette tâche est liée à la variante de build de débogage?

Exemple de code

apply plugin: 'com.Android.library'
ext.buildInProgress = "" 

buildscript {

repositories {
    maven {
        url = url_here
    }
}

dependencies {
    classpath 'com.Android.tools.build:gradle:3.0.1'
}
}


configurations {
     //get current build in progress here e.g buildInProgress = this.getBuildType()
}

Android {
     //Android build settings here
}

buildTypes {
         release {
          //release type details here
      }

       debug {
           //debug type details here
       }

    anotherBuildType{
          //another build type details here
    }

   }
}

dependencies {
      //dependency list here
}

repositories{
         maven(url=url2_here)
}


task myTask{
      if(buildInProgress=='release'){
           //do something this way
      }
      else if(buildInProgress=='debug'){
          //do something this way
      }
      else if(buildInProgress=='anotherBuildType'){
         //do it another way
     }
}

En résumé

Existe-t-il un moyen pour moi d'obtenir exactement le type de build en cours dans myTask {}?

9
Naz_Jnr

Vous pouvez obtenir le type de build exact en analysant votre applicationVariants:

applicationVariants.all { variant ->
    buildType = variant.buildType.name // sets the current build type
}

Une implémentation pourrait ressembler à ceci:

def buildType // Your variable

Android {
    applicationVariants.all { variant ->
        buildType = variant.buildType.name // Sets the current build type
    }
}

task myTask{
    // Compare buildType here
}

Vous pouvez également vérifier this et this des réponses similaires.

Mise à jour

This réponse par this question a aidé le questionneur à régler le problème.

9
UnlikePluto