Intereting Posts
Android: не удается заставить javascript работать в WebView даже с помощью setJavaScriptEnabled (true) Анимация ActionBarDrawerToggle Как добиться следующих результатов на образцовом изображении в ImageView Android, таком как Pinterest? Android.database.sqlite.SQLiteException: таблица X не имеет столбца с именем Y: при компиляции: INSERT INTO Как просмотреть файлы в каталоге Android? Android слайд-анимация слева направо Установить цвет текста для TextView Android Как перенести большие данные RecyclerView на изменения ориентации? Есть ли причина для предварительной загрузки чертежей из ресурсов? В чем разница между процессором и чипсетом? Android: Будет ли новый поток просто остановлен после его завершения? Андроид-студия не может найти символ «Активность» Возможно ли создать HashMap, который является Parcelable на Android? Найти личный лист Google по имени с помощью API 4 в Android Java.exe вышел с кодом 2 (MSB6006) Выход с ошибкой: Слишком много ссылок на поле: 81626; Max – 65536

Прочитать 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