2016-07-08 14 views
7

Entschuldigung im Voraus für meine Ignoranz. Ich bin sehr neu zu groß.create version.txt Datei im Projekt Verzeichnis über build.gralle Aufgabe

Mein Ziel ist es, eine Aufgabe in meiner build.gradle-Datei zu haben, in der eine Datei 'version.txt' in meinem Projektverzeichnis erstellt wird, wenn ich den Terminalbefehl gradle in meinem Projekt root ausführe. Diese 'version.txt' Datei muss Version Metadaten des Build, wie enthalten:

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

(^ Revision wäre die git commit Hash-Wert des HEAD)

Ich habe versucht, zu Wiederverwendung Schnipsel aus den folgenden Ressourcen, aber ohne Erfolg, möglicherweise weil diese Mittel nicht mehr aktuell sind: 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

ich verwende gradle Version 2.14 (die neueste Version ist).

Jede Hilfe und/oder Einblick würde sehr geschätzt werden. Vielen Dank!

Antwort

17

Das Beispiel, auf das Sie sich beziehen, ist fast korrekt. Mit ein paar kleinere Verbesserungen es wie erwartet funktioniert:

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 zu bekommen die gewünschte Ausgabe.

+0

Dies funktionierte wie erwartet. Das Beispiel, auf das ich mich bezog, war in der Tat fast richtig. Danke noch einmal! –

+0

Geringfügige Optimierungen: Der Linksshift ist veraltet und sollte durch den inneren 'doLast'-Abschluss ersetzt werden. Außerdem können Sie die Dateierstellung auf eine einzeilige 'neue Datei (Dateiname) verkürzen. Text =" blah "' – MarkHu

+0

Danke, aktualisiert. – Jk1