web-dev-qa-db-fra.com

créer un fichier version.txt dans le répertoire du projet via la tâche build.gradle

Toutes mes excuses à l'avance pour mon ignorance. Je suis très nouveau pour gradle.

Mon objectif est d'avoir une tâche dans mon fichier build.gradle, dans lequel un fichier 'version.txt' est créé dans mon répertoire de projet chaque fois que j'exécute la commande de terminal gradle dans la racine de mon projet. Ce fichier 'version.txt' doit contenir des métadonnées de version de la construction, telles que:

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

(^ La révision serait le hachage de validation git de la tête)

J'ai essayé de réutiliser des extraits des ressources suivantes, mais en vain, peut-être parce que ces ressources sont obsolètes: http://mrhaki.blogspot.com/2015/04/gradle-goodness-use- git-commit-id-in.htmlhttp://mrhaki.blogspot.com/2010/10/gradle-goodness-add-incremental-build.html

J'utilise la version 2.14 de gradle (qui est la dernière version).

Toute aide et/ou information serait très appréciée. Merci!

28
Chris Covney

L'exemple auquel vous faites référence est presque correct. Avec quelques ajustements mineurs, cela fonctionne comme prévu:

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

Courir gradle versionTxt pour obtenir la sortie souhaitée.

47
Jk1