SW Version aus gradle build auslesen

8u3631984

Bekanntes Mitglied
Hallo zusammen.
Ich möchte, dass meine Spring Boot Application eine Versionsnummer bekommt.
Ich verwende als Build Tool Gradle
Ich möchte nun, dass beim Bauen der SW aus der gradle.build Datei die Software Version ausgelesen wird und in einer Variablem gespeichert wird.
Ich hatte verschiedene Ansätze gesehen, dass dabei dann in der application.properties ein Feld gesetzt wird und in einer Config Klasse dann diese Feld ausgelesen wird.
Das finde ich aber etwas unschön, da der Enduser dann immer in der Application.properties diese Feld stehen hat.
Gibt es soetwas wie ein Best Practice. Man könnte ja auch eine Konstante in einer Config Klasse haben, die dann hart eincodiert die Sw version enthält.
Aber dann muss man an 2 Stellen - in der gradle.build und in der Config Klasse die Sw Version synchron halten.

Was ist eure Meinung
 

LimDul

Top Contributor
Dann schreib es doch in version.properties, die ins jar gebundelt wird. Grundsätzlich ist das meines Erachtens das Standard-Vorgehen, dass in einer properties Datei abzulegen.
 

Robert Zenz

Top Contributor
Android Studio verwendet diesen Ansatz, es wird die Klasse BuildConfig beim kompilieren dynamisch erzeugt, man kann diese dann natuerlich auch in der Applikation verwenden. Frag' mich jetzt aber bitte nicht wie genau die das machen, mit Gradle kenne ich mich nicht aus.
 

8u3631984

Bekanntes Mitglied
Ich habe es nun so gelöst, dass ich einen gradle Step hinzugefügt habe, der mir die Versionsnummer in eine Datei version.properties schreibt.
Dann kann ich sie daruas auslesen.

Viele Dank für die Hilfe.

So habe ich es gemacht :
Java:
processResources {
    println " VERSION : " + project.version
    filesMatching("**/version.properties") {
        expand (
                "projectVersion": project.version
        )
    }
}

Code:
    @Value("${swVersion}")
    private String version;
 

Neue Themen


Oben