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 {}?
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.