Standardmäßig haben alle Java-Projekte von Gradle eine Eigenschaft version
. Normalerweise sieht das ungefähr so aus:
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?
Angenommen, Ihr Gradle-Skript fügt version
korrekt in das jar-Manifest ein, wie hier hier :
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.