Ein lästiges Problem: Einerseits muss man die Versionsnummern in seinem Quelltext oder im Buildsystem pflegen, auf der anderen Seite sollte man nicht vergessen, beim Hochzählen der Versionsnummer auch einen entsprechenden Tag in der Versionskontrolle zu setzen. Mein bevorzugtes Build-System für Java (und andere JVM-Sprachen) ist Gradle, die ultimative Versionskontrolle ist sowieso git :-) Da Gradle mit eigenen Plugins erweiterbar ist, lag es nahe, hier etwas entsprechenden Code zu bauen – das Ergebnis ist hier auf github.
Das Plugin setzt die Versionsnummern-Information in Gradle gemäß dem letzten Versions-Tag aus git. Falls der aktuelle Repo-Head keinen Versionstag besitzt, wird eine Folgeversionsnummer für eine Snapshot-Version generiert. Optional können diese Informationen auch in eine Properties-Datei geschrieben werden, die dann vom Programm zur Laufzeit eingelesen werden kann (beispielsweise für einen About-Dialog).
Ich hoffe, das Plugin wird sich nicht nur bei mir als nützlich erweisen.