Groovy/build.gradle: Obtener si es Depuración o Versión final
Estoy buscando una forma sencilla de averiguar si una aplicación de Android se está construyendo en modo Depuración o en modo Lanzamiento dentro de mi script “build.gradle” de una biblioteca (en una tarea).
Tengo una tarea llamada “prepareHermes” que extrae un archivo .aar. Actualmente extraigo siempre la variante de depuración, pero en compilaciones de Lanzamiento quiero utilizar la variante de lanzamiento:
tarea prepareHermes() {
realizar después {
def ES_DEPURACIÓN = // TODO: aquí
def nombreAAR = ES_DEPURACIÓN ? "hermes-debug.aar" : "hermes-release.aar"
def hermesAAR = archivo("$rutaPaqueteHermes/android/${nombreAAR}")
if (!hermesAAR.existe()) {
lanzar nueva GradleScriptException("El paquete npm de hermes-engine está ausente 'android/${nombreAAR}'", null)
}
def archivosSo = zipTree(hermesAAR).matching({ it.include " **/*.so" })
copiar {
desde archivosSo
desde "$reactNative/ReactAndroid/src/main/jni/first-party/hermes/Android.mk"
hacia "$directorioNdkTerceros/hermes"
}
}
}
Esta tarea se utiliza posteriormente en varios lugares (ver código completo aquí), por lo que hacer dos tareas separadas (prepareHermesDebug y prepareHermesRelease) es un poco incómodo, ya que tendría mucho código duplicado. (Esta tarea es una dependencia para algunas otras tareas, como se muestra en el código completo).
davy.ai
Para averiguar si una aplicación de Android se está compilando en modo Depuración o Lanzamiento dentro del script
build.gradle
de una biblioteca, puedes utilizar la propiedadgradle.startParameter.taskNames
para comprobar si la compilación actual incluye la tareaassembleDebug
. Si es así, entonces la aplicación se está compilando en modo Depuración, de lo contrario se está compilando en modo Lanzamiento. Puedes modificar tu tareaprepareHermes
para utilizar esta información de la siguiente manera:Esto comprobará si la compilación actual incluye la tarea
assembleDebug
y establecerá la variableisDebug
en consecuencia. Luego, utilizará esta información para elegir el archivo.aar
correcto para extraer.