Gradle: Machen Sie die Build-Version für Java verfügbar

7

Standardmäßig haben alle Java-Projekte von Gradle eine Eigenschaft version . Normalerweise sieht das ungefähr so ​​aus:

%Vor%

Gibt es eine Möglichkeit, die hier definierte Eigenschaft "version" dem eingebauten Java-Code zur Verfügung zu stellen? Was ich gerne hätte, wäre eine Klasse wie diese im Projekt:

%Vor%

Ich stelle mir vor, dass dies durch irgendeine Art von Quelltextgenerierung geschehen könnte. Oder indem Sie Gradle die Variable in eine Art Konfigurationsdatei in src/main/resources schreiben lassen. Gibt es einen "Standard" (d. H. Allgemein akzeptierten) Weg, dies in Gradle zu tun?

    
Alan47 05.06.2016, 14:08
quelle

1 Antwort

19

Angenommen, Ihr Gradle-Skript fügt version korrekt in das jar-Manifest ein, wie hier hier :

%Vor%

Ihr Code kann die Version dieser jar-Manifest-Datei übernehmen:

%Vor%

Sie können auch eine Gradle-Aufgabe zum Erstellen einer Eigenschaftendatei mit der darin enthaltenen Version schreiben und diese generierte Eigenschaftendatei in die jar-Datei einschließen und dann mit getResouceAsStream() auf sie zugreifen.

Sie können natürlich auch die BuildVersion.java -Datei von einer Gradle-Aufgabe generieren, wobei die Version direkt als String-Literal eingebettet ist und sicherstellen, dass die Aufgabe vor der compile -Aufgabe ausgeführt wird.

Aber ich würde vorschlagen, nur die Versionsnummer zu verwenden, die Sie bereits enthalten (Manifest-Datei), die volle Unterstützung sowohl von Gradle zum Schreiben als auch Java Runtime zum Lesen hat, ohne irgendeine benutzerdefinierte Gradle-Aufgabe oder Java-Datei Lesen.

    
Andreas 05.06.2016, 14:50
quelle

Tags und Links