Создать файл version.txt в проекте dir через build.gradle task

Извиняюсь заранее за мое невежество. Я очень новичок в gradle.

Моя цель состоит в том, чтобы иметь какую-то задачу в моем файле build.gradle, где файл "version.txt" создается в моем каталоге проекта всякий раз, когда я запускаю команду терминала t20 > в моем корне проекта. Этот файл "version.txt" должен содержать метаданные версии сборки, такие как:

Version: 1.0 Revision: 1z7g30jFHYjl42L9fh0pqzmsQkF Buildtime: 2016-06-14 07:16:37 EST Application-name: foobarbaz app

(^ Редактирование будет git хешем фиксации HEAD)

Я попытался повторно использовать фрагменты из следующих ресурсов, но безрезультатно, возможно потому, что эти ресурсы устарели: http://mrhaki.blogspot.com/2015/04/gradle-goodness-use-git-commit-id-in.html http://mrhaki.blogspot.com/2010/10/gradle-goodness-add-incremental-build.html

Я использую gradle версию 2.14 (это последняя версия).

Любая помощь и/или понимание будут очень оценены. Спасибо!

Ответ 1

Пример, на который вы ссылаетесь, почти верен. С парой мелких настроек он работает как положено:

import java.text.SimpleDateFormat
import org.ajoberstar.grgit.Grgit

plugins {
    id "org.ajoberstar.grgit" version "1.7.2"
}

version = 1.0

task versionTxt()  {
    doLast {
        new File(projectDir, "version.txt").text = """
Version: $version
Revision: ${grgit.head().abbreviatedId}
Buildtime: ${new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(new Date())}
Application-name: foobarbaz app
"""
    }
}

Запустите gradle versionTxt чтобы получить желаемый результат.