Continuous Delivery mit Maven und SemVer - geht das?
Für das Releasen von Java-basierten Artefakten (JARs/WARs/...), die mit Maven oder Gradle gebaut werden, hat sich die Verwendung von Semantik Versioning (SemVer) weitgehend durchgesetzt. Typischerweise wird ein Release gebaut, wenn die Software eine gewisse Reife erreicht hat.
Continuous Delivery setzt jedoch auf das regelmäßige Ausliefern von Software, im Idealfall führt jede Änderung (Commit) zu einem Artefakt, das bis in produktive Systeme ausgerollt wird. Das Multi-Module-Maven-Release-Plugin (auch Releaser-Plugin genannt) kombiniert die Verwendung der Major-/Minor-Versionen von SemVer mit einer Build-Nummer statt der Patch-Version. So kann einerseits immer noch eine Schnittstellen-/Kompatibilitäts-Semantik in der Versionsnummer verankert werden, die Artefakte können aber auch kontinuierlich und unterscheidbar ausgeliefert werden. Der Vortrag stellt das Konzept an Hand einer Open Source-Software vor, die damit gebaut und geliefert wird und diskutiert eine dabei entstandene Erweiterungen des Moduls, nämlich die mögliche Definition von Abhängigkeiten als Snapshots und Verwendung von deren jeweils aktueller Version beim automatischen Releasen.






















