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}"

  • No se puede generar APK firmado con proguard habilitado cuando se usa Joda Time
  • ¿Existe un equivalente de aspectoj-maven-plugin para gradle que funciona en android?
  • La actualización de herramientas de creación rompe mi compilación
  • Servicios de Google Play en un proyecto de Android Studio 0.1.1 gradle?
  • Aplicación para Android que comienza lentamente - dex2oat El código postal está ausente. Cancelado - Gradle 2.10
  • Gradle + Robolectric: ¿Dónde puedo poner el archivo org.robolectric.Config.properties?
  • Cómo poner mis bibliotecas delante de android.jar editando build.gradle en Android-Studio
  • ¿Por qué no puedo usar la versión baja buildTools?
  • ¿Cómo puedo añadir sabores en un módulo con Android Studio?
  • La red es inaccesible: connect
  • Importar proyecto de biblioteca varias veces en Android Studio 1.3.1 hace que la biblioteca desaparezca
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.