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.
- Cordova / Ionic build android Gradle error: La versión mínima de Gradle admitida es 2.14.1. La versión actual es 2.13
- Instalar todos los artefactos de módulos en el repositorio de maven personalizado usando Gradle y Android Studio
- ¿Cómo hacer que runProguard funcione para el plugin Gradle de android-library?
- Android Studio - Importar biblioteca externa / Jar
- Proyecto Unity como dependencia en Gradle
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 = {...}
- Misterios de la importación de bibliotecas (por ejemplo, Picasso) a Android Studio
- Migración desde eclipse + SVN a Android Studio
- Instalar manualmente Gradle y usarlo en Android Studio
- Gradle no pudo encontrar com.android.databinding: dataBinder: 1.0-rc0
- Final inesperado de datos de bloque en Gradle sync
- Gradle pone archivos duplicados en el archivo apk
- ¿Es posible Proguard un módulo de biblioteca de Android, pero no el módulo de aplicación?
- Reemplace dinámicamente applicationId en el archivo_paths.xml
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 }
¿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 2.0: Biblioteca de Actionbar de soporte (librería de soporte appcompat v7 sin recursos): No se encontró recurso @ style / Theme.AppCompat.Light.DarkActionBar
- ¿Por qué mi EditText se expandió horizontalmente o verticalmente después de configurar Width and Height como wrap_content en android?