Gradle, define una colección de propiedades

Estoy trabajando en un Gradle Script para implementar automáticamente tres entornos Android. La idea es definir un grupo de propiedades que se utilizarán para contener todos los datos de cada entorno. Ejemplo

[DEV, QA & Live] { buildFolder ="..." envName = "..." excludeFiles= "**/..." } 

Entonces, para cada operación copiar código, editar archivos … Sólo tendré que iterar cada entorno.

Básicamente, mi problema es que no puedo conseguir encontrar una manera de crear esta colección.

¿Podría alguien explicar la mejor manera de mantener un grupo de propiedades?

 I've already tried with: project.ext.dev= { envName = "live" buildFolder = "releaseLive" excludeFiles= ['**/..' ] } project.ext.qa = { envName = "live" buildFolder = "releaseLive" excludeFiles= ['**/..' ] } project.ext.live = {...} 

No estoy totalmente seguro de lo que quieres hacer, pero parece que quieres usar un mapa. Recuerde que los guiones de Gradle son simplemente maravillosos.

así, algo así como:

 project.ext.dev = [ envName:"DEV", buildFolder: "releaseLive", ] project.ext.qa = [ envName:"QA", buildFolder: "releaseLive", ] task printProps << { println project.dev.envName println project.qa.envName } 

ver http://groovy.codehaus.org/Collections

¿Qué pasa con crear 3 archivos separados con nombres iguales (dev.properties, qa.properties y live.properties). Y inserta en ellos tus propiedades

 envName = "live" buildFolder = "releaseLive" excludeFiles= ['**/..' ] 

Después de que usted puede utilizar estas propiedades en su build.gradle config. Algo como esto:

 apply plugin: 'android' android {...} File propsFile = new File("dev.properties"); if (propsFile.exists()) { Properties properties = new Properties(); properties.load(new FileInputStream(propsFile)); //after loading properties you can get values from them println properties['envName']; println properties['buildFolder']; println properties['excludeFiles']; } 

Así que para usar el valor de algún entorno tendrá que cambiar el nombre del archivo. Puede crear una matriz de nombres de archivo e iterarlos.

  • Android Studio - ProGuard "java.io.IOException ... bin \ classes (Ningún archivo o directorio)"
  • ¿Cuál es la forma más rápida de ejecutar pruebas de unidad en Android
  • Android Studio: migrar complejo build.xml a build.gradle
  • No se puede ejecutar gradle
  • Gradle no puede construir ActionBarSherlock
  • Al construir la versión de apk usando android studio, obtengo un error "Keystore fue manipulado, o la contraseña era incorrecta"
  • ¿Cómo ejecutar un comando en windows cmd usando Gradle?
  • Com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException
  • En una versión de gradle de Android, cambie el contenido de strings.xml durante la compilación
  • ¿Cómo estructura el directorio de prueba del proyecto en Android Studio?
  • Anula la versión de Java cuando construye un proyecto Cordova con gradle
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.