scmversion Gradle Plugin

Wer Soft­ware ent­wi­ckelt, soll­te sau­ber Ver­si­ons­num­mern ver­ge­ben: Bei Bi­blio­the­ken be­stim­men sie die ge­wünsch­te (kom­pa­ti­ble) Ver­si­on, bei kom­plet­ten Pro­gram­men ist so er­kenn­bar, wel­cher Stand des Quell­tex­tes „da drau­ßen“ im Ein­satz ist. Um einen Rück­schluß auf den zu­ge­hö­ri­gen Quell­text zu haben, muss die ent­spre­chen­de Ver­si­on im Sour­ce Con­rol Ma­nage­ment mit der­sel­ben Ver­si­ons­num­mer mar­kiert wer­den – man hat also eine dop­pel­te Buch­füh­rung: Ein­mal in der Soft­ware selbst (bzw. im Build-Skript, das die Ver­si­ons­num­mer der ge­ne­rier­ten Bi­blio­thek fest­legt) und ein­mal in der Ver­si­ons­kon­trol­le. Die­ses Grad­le-Plu­gin sorgt dafür, dass diese In­for­ma­ti­on nur noch aus einer Quel­le stammt, näm­lich dem Sour­ce Con­trol Ma­nage­ment.

Der Quell­text des Plug­ins ist hier auf git­hub ver­füg­bar.

Gradle Plugin: Versionsnummer aus git

Kein Problem mehr mit vergessenen Aktualisierungen

Ein läs­ti­ges Pro­blem: Ei­ner­seits muss man die Ver­si­ons­num­mern in sei­nem Quell­text oder im Build­sys­tem pfle­gen, auf der an­de­ren Seite soll­te man nicht ver­ges­sen, beim Hoch­zäh­len der Ver­si­ons­num­mer auch einen ent­spre­chen­den Tag in der Ver­si­ons­kon­trol­le zu set­zen. Mein be­vor­zug­tes Build-Sys­tem für Java (und an­de­re JVM-Spra­chen) ist Grad­le, die ul­ti­ma­ti­ve Ver­si­ons­kon­trol­le ist so­wie­so git :-) Da Grad­le mit ei­ge­nen Plug­ins er­wei­ter­bar ist, lag es nahe, hier etwas ent­spre­chen­den Code zu bauen – das Er­geb­nis ist hier auf git­hub.