cómo hacer fuera de árbol android construye con gradle

Una de las características más atractivas de cmake es el paradigma de construcción fuera del árbol, que permite construir variantes de un proyecto en carpetas separadas, haciendo así que sea más rápido cambiar entre configuraciones de construcción.

¿Existe tal mecanismo en android + gradle? Idealmente, no se crearía ni modificaría un solo archivo en el árbol de origen.

EDIT – Lo que quiero decir con fuera de árbol es esto:

Mi carpeta de origen se ve así:

/work/project/build.gradle /work/project/src/... /work/project/res/... 

Cuando ejecuto gradle construir , termino con nuevas carpetas como:

 /work/project/.gradle/... /work/project/build/.. /work/project/res/... 

Quisiera construir el proyecto usando gradle de modo que las nuevas carpetas y los archivos generados estén en una carpeta fuera del proyecto tal como:

 /work/build-project/.gradle/... /work/build-project/build/.. /work/build-project/res/... 

Aquí está un buen hallazgo en cuanto a la filosofía detrás de él: http://voices.canonical.com/jussi.pakkanen/2013/04/16/why-you-should-consider-using-separate-build-directories/

3 Solutions collect form web for “cómo hacer fuera de árbol android construye con gradle”

Tienes que añadir al archivo build.gradle tu proyecto raíz:

 allprojects { buildDir = "/external/path/${rootProject.name}/${project.name}" } 

Android soporta la construcción con variantes. Consulte la documentación sobre las versiones de Gradle:

Edificio con variantes

Tratar de especificar allprojects.buildDir como una ruta relativa no funcionaría correctamente con los módulos a medida que se resuelva desde el módulo actual.

El truco es definirlo así:

buildDir = "${rootDir.absolutePath}/../../../bin/Android/${project.name}"

  • Duplicar archivos copiados en APK Android - ¿Puede ser fusionado?
  • Campos personalizados para un tipo de compilación en gradle
  • Módulo hermano de importación en Android Studio
  • Requiere el proyecto Gradle desde otro directorio
  • Error al resolver 'com.google.firebase: firebase-messaging: 11.0.4' en Android Studio 2.3.3
  • Aapt_rules.txt no se encuentra al crear apk en android studio
  • Android Studio: Resolución de clases duplicadas
  • "Los archivos de Gradle han cambiado desde la última sincronización del proyecto." Siempre aparece el mensaje
  • Robolectric with Gradle: Recursos no encontrados
  • Cambiar las ubicaciones de salida de ndk-build
  • Android Studio cómo ejecutar gradle sync manualmente?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.