Rucni release proces: zmenit verzi v pom.xml, commitnout, buildnout, uploadnout do Nexusu, zmenit verzi na dalsi SNAPSHOT, commitnout. Pet kroku, kde kazdy muze selhat. Maven Release Plugin to automatizuje na jeden prikaz.
Jak to funguje¶
mvn release:prepare — zmeni verzi z 2.1-SNAPSHOT na 2.1.0, commitne, vytvori tag, zmeni verzi na 2.2-SNAPSHOT, commitne. mvn release:perform — checkout tagu, build a deploy do Nexusu. Automaticky, opakovatelne, bez lidske chyby.
Nexus Staging¶
Release artefakty jdou do Nexus staging repository. Po overeni (QA test) se propagovji do releases repository. Pokud QA selze, staging se zahodI — produkci to neovlivni.
Problemy v praxi¶
SCM pristup — release plugin potrebuje write pristup do Gitu (SSH klice na Jenkins serveru). SNAPSHOT zavislosti — release plugin odmiitne releasnout projekt se SNAPSHOT zavislostmi. Multi-module projekty — release vsech modulu najednou, nebo jednotlive? Nase volba: najednou.
Verzovaci konvence¶
Semantic versioning: MAJOR.MINOR.PATCH. Major pro breaking changes, minor pro nove features, patch pro bugfixy. SNAPSHOT pro development verze.
Zaverem¶
Maven Release Plugin usetri cas a eliminuje chyby. Investice do spravne konfigurace (SCM, Nexus staging) se vrati pri kazdem releasu.