Прочитать versionName из build.gradle в bash

Есть ли способ прочитать значение build.gradle файла build.gradle проекта Android, чтобы использовать его в bash?

Точнее: как я могу прочитать это значение из файла и использовать его в скрипте Travis-CI? Я буду использовать его как

 # ANDROID_VERSION=??? export GIT_TAG=build-$ANDROID_VERSION 

Я создал Travis-CI, как описано в этом сообщении https://stackoverflow.com/a/28230711/1700776 .

My build.gradle: http://pastebin.com/uiJ0LCSk

Вы можете определить пользовательскую задачу, т.е.

 task('printVersion') << { println project.version } 

И исполните его в Баше:

 $ gradle -q pV 1.8.5 

Благодаря комментарию alnet я придумал это решение (обратите внимание на возражение Дуга Стивенсона ):

 # 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 

например

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

Используйте ${getVersionName()} чтобы получить версию в build.gradle

Intereting Posts
Отправка сообщения обработчику мертвой нити при получении местоположения из IntentService Android – лучший способ наложения кнопки воспроизведения на изображение / миниатюру Видео, записанное с Android MediaRecorder, повреждено на Samsung Galaxy S2 Добавление рамки или границы в ImageView и Drop-Shadow Запуск / остановка встроенного Wi-Fi / USB-подключения от кода? Получите MSISDN с SIM-карты с помощью Android Папка SRC в Eclipse пуста (класс MainActivity не создан) после создания нового проекта Android с использованием Eclipse Как получить номер телефона Android-устройства с использованием Sim-карты или Ошибка в памяти при использовании API Карт Google Что означает этот Android Lint: «Неправильная ориентация?» Как отключить прокрутку только правого навигационного ящика? Как получить размер экрана в Android, включая виртуальные кнопки? Android – только файл с открывшейся ошибкой Создание карты с SD-карты для установки в качестве фона в android Предварительный просмотр камеры размыт в галактике Samsung, но она хороша в samsung s3