Leer versionName de build.gradle en bash
¿Hay una manera de leer el valor build.gradle
archivo build.gradle
de un proyecto de Android para usarlo en bash?
Más precisamente: ¿Cómo puedo leer este valor del archivo y usarlo en un script Travis-CI? Lo usaré como
- Travis CI para Android - Error de compilación: No se pudo encontrar el destino y no se encontraron dependencias
- "Invalid --abi armeabi-v7a para el destino seleccionado" con las API de Google
- Travis CI para Android
- Travis-CI Android pruebas con Gradle mantener el tiempo de espera
- ¿Es gradlew obligatorio para que travis CI funcione?
# ANDROID_VERSION=??? export GIT_TAG=build-$ANDROID_VERSION
Configuré un Travis-CI como se describe en este post https://stackoverflow.com/a/28230711/1700776 .
Mi build.gradle: http://pastebin.com/uiJ0LCSk
- No se puede construir el proyecto con Travis-CI y Android
- Travis ci build failing - causa: PermGen espacio
- Variantes de construcción de Android en travis.ci
- ¿Por qué Travis CI descarga todo lo que construye cada vez?
- Travis-ci build sigue fallando con ShellCommandUnresponsiveException
- La construcción de Travis CI no funciona con Android Constraint Layout
- Las pruebas de Android fallan en Travis con ShellCommandUnresponsiveException
- Almacenamiento en caché del SDK de Android en Travis CI
Puede definir una tarea personalizada, es decir,
task('printVersion') << { println project.version }
Y ejecútalo en Bash:
$ gradle -q pV 1.8.5
Gracias al comentario de alnet me propuse esta solución (nota la objeción de Doug Stevenson ):
# variables export GRADLE_PATH=./app/build.gradle # path to the gradle file export GRADLE_FIELD="versionName" # field name # logic export VERSION_TMP=$(grep $GRADLE_FIELD $GRADLE_PATH | awk '{print $2}') # get value versionName"0.1.0" export VERSION=$(echo $VERSION_TMP | sed -e 's/^"//' -e 's/"$//') # remove quotes 0.1.0 export GIT_TAG=$TRAVIS_BRANCH-$VERSION.$TRAVIS_BUILD_NUMBER # result echo gradle version: $VERSION echo release tag: $GIT_TAG
p.ej
android{ android.applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile def fileName if (outputFile != null && outputFile.name.endsWith('.apk')) { if (!outputFile.name.contains('unaligned')) { fileName = "yourAppRootName_${variant.productFlavors[0].name}_${getVersionName()}_${variant.buildType.name}.apk" output.outputFile = new File(outputFile.parent + "/aligned", fileName) } } } } }
use ${getVersionName()}
para obtener la versión en build.gradle
- Alinee a la derecha de la pantalla con margen Android
- Cómo obtener la ruta de miniatura de vídeo y no el mapa de bits