2016-07-08 109 views
7

Mi scuso in anticipo per la mia ignoranza. Sono molto nuovo al gradle.creare il file version.txt nella dir del progetto tramite l'attività build.gradle

Il mio obiettivo è avere qualche attività nel mio file build.gradle, in cui un file 'version.txt' viene creato nella mia directory di progetto ogni volta che eseguo il comando di terminale gradle nella mia radice di progetto. Questo file 'version.txt' deve contenere la versione dei metadati della generazione, come ad esempio:

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

(^ revisione sarebbe il git commit hash della testa)

Ho cercato di riutilizzare frammenti dalle risorse seguenti, ma senza alcun risultato, forse perché queste risorse non sono aggiornati: 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

sto usando Gradle versione 2.14 (che è la versione più recente).

Qualsiasi aiuto e/o intuizione sarebbe molto apprezzato. Grazie!

risposta

17

L'esempio a cui si fa riferimento è quasi corretto. Con un paio di piccoli aggiustamenti funziona come previsto:

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

plugins { 
    id "org.ajoberstar.grgit" version "1.5.1-rc.3" 
} 

version = 1.0 

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

Run gradle versionTxt per ottenere il risultato desiderato.

+0

Questo ha funzionato come previsto. L'esempio a cui mi riferivo era in effetti quasi corretto. Grazie ancora! –

+0

Piccole modifiche: leftShift è deprecato e dovrebbe essere sostituito con la chiusura interna 'doLast'. Inoltre, puoi abbreviare la creazione del file in un nuovo file one-liner (nome file) .text = "blah" ' – MarkHu

+0

Grazie, aggiornato. – Jk1