Странное поведение при использовании 'git description --tags' с Gradle - PullRequest
0 голосов
/ 19 февраля 2019

У меня проблемы с попыткой вставить строку 'git description' в мой APK во время переименования.Я создал пользовательское задание для переименования и копирования моего сгенерированного APK в каталог.Хотя возвращаемая строка выводит «v1.0-1-g49a9eaa-dirty», мой APK переименовывается в «MyApp-v1.0-dirty.apk» вместо «MyApp-v1.0-1-g49a9eaa-dirty.apk»

Вот код моих файлов Gradle в Android Studio:

Проект build.gradle:

def getGitVersionName = { ->
    try {
        def stdout = new ByteArrayOutputStream()
        exec {
            commandLine 'git', 'describe', '--tags', '--dirty'
            standardOutput = stdout
        }
        return stdout.toString().trim()
    }
    catch (ignored) {
        return null
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }

    ext {
        gitVersionName = getGitVersionName()
        printf "ROOT VersionName ${project.gitVersionName}\n"
    }
}

Приложение build.gradle:

....

task('deployApk', type: Copy, dependsOn: [':app:clean',':app:build']) {
    description 'Copies the resource directory to the target directory.'
    from('build/outputs/apk/debug/')
    include('app-debug.apk')
    into('../buildAssets/apk')
    rename('app-debug.apk', "MyApp-${project.gitVersionName}.apk")
    printf "MyApp-${project.gitVersionName}.apk\n"
}

Результаты, которые я получаю для двух 'printf':

ROOT VersionName v1.0-1-g49a9eaa-dirty

> Configure project :app
MyApp-v1.0-1-g49a9eaa-dirty.apk

Но имя apk, как я уже говорил,

MyApp-v1.0-dirty.apk

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...