Donnerstag, 3. April 2014

HOWTO: Releasing a new Software Version with Maven and Git.

Ausgangslage:

  • Versionsverwaltung mit Git und Feature Branches
  • Ich befinde mich auf dem Branch development 
  • Alle Fehler auch Javadoc Fehler sind beseitigt
  • Alle Änderungen commitet und gepushed
  • Java
  • Maven 3 und SNAPSHOTS
  • Nexus
Wie mache aus meiner einer aktuelle Entwicklung ein Release?
  1. mvn deploy, um die letzte Development Version als SNAPSHOT im Nexus zu veröffentlichen
  2. mvn versions:resolve-ranges, um Dependencies mit Range Angaben zu konkreten Versioen aufzulösen, sonst scheitert der Release-Vorgang
  3. mvn versions:use-latest-releases, um die Dependencies zu aktualisieren auf deren letzten Release-Stand
  4. git commit, um die Änderungen an der pom.xml in Git Repository zu übertragen
  5. git checkout master
  6. git merge development
  7. mvn release:prepare
  8. mvn release:perform
  9. git commit, um die Änderungen an der pom.xml in Git Repository zu übertragen
  10. git checkout development
  11. git merge master

Das beschreibt den kompletten Weg ein Release zu erstellen vom Development Branch und wieder zurück. Ach ja, und natürlich das Testen nicht vergessen.

Wenn etwas schief geht:

  1. Entfernen von Tags aus Git:
    1. git tag listet alle Tags auf
    2. git tag -d tagname entfernt den entsprechenden Git Tag aus dem lokalen Git Repo
    3. git push --delete origin tagname entfernt den entsprechenden Git Tag aus dem entfernten Git Repo
  2. Test im Release Prozess wirklich überspringen: mvn release:perform -Darguments="-DskipTests"