# maven und svn - wann und wie



## dermoritz (6. Mai 2010)

Ich hab nun einige Maven Bücher zum Teil gelesen. Was mir aber irgendwie fehlt ist die Rolle von SVN in diesem Zusammenhang. In den meisten Büchern taucht SVN erst im Zusammenhang mit "continuous integration" auf - also relativ weit hinten in den Büchern. 
Nun hatte ich aber gedacht bzw. ist es bei uns Realität, dass SVN so eine Art Grundbaustein ist und man dann sowas wie Maven und continuous integration dranbastelt oder dazunimmt.
Konkret Frage ich mich inwiefern in meinem Stadium der "Projektlandschaft" (SVN, Maven2, Nexus) SVN und Maven "kommunizieren" können. Im Moment hat Maven mit SVN gar nix zu tun?! Ich hatte gedacht das man gleich die Benennung der Builds mit SVN verknoten kann?!
Also welche Rolle hat denn SVN in diesem Zusammenhang, wie wird es sinnvoll integriert?


----------



## kama (6. Mai 2010)

Hallo,

SVN und Maven "kommunizieren" nur im Falle einer Release Erstellung "miteinander" (mvn release:xxxx)...

Ansonsten ist SVN eine Versionskontrolle. Maven ist das Build Tool und Nexus ist ein Repository Manager für Maven.

Die Frage ist wo das Problem liegt ? Kannst Du das vielleicht ein wenig ausführlicher beschreiben ?

Gruß
Karl Heinz Marbaise


----------



## dermoritz (7. Mai 2010)

danke kama genau das wollte ich wissen. Also genau dass svn nur beim "release" ein Rolle spielt, kommt implizit bei den meisten Büchern rüber und die schleusen diesen Schritt oft durch "continuous integration".

Meine ursprüngliche Vorstellung war, dass man eventuell auch irgendwie die Zwischenrevisionen - die die man ins Repository hochlädt mit der Revisionsnummer aus SVN benennt. Oder allgemein: ich dachte das irgendeine Interaktion zwischen SVN und Maven stattfinden könnte/sollte wenn man irgendwas commited (Benennung des Snapshots anpassen?) ODER etwas ins Repository stellt (automatischer comit).
Aber im Rückblick erscheint es viel sinnvoller Maven und SVN erstmal getrennt zu halten und nur "Releases" zu "melden". Also danke - manchmal sind Antworten einfach so einfach ;-)


----------



## kama (7. Mai 2010)

Hallo,


dermoritz hat gesagt.:


> danke kama genau das wollte ich wissen. Also genau dass svn nur beim "release" ein Rolle spielt, kommt implizit bei den meisten Büchern rüber und die schleusen diesen Schritt oft durch "continuous integration".


Dazu ist im Release falle der <scm> Eintrag notwendig. Wenn man dann eben SVN Nutzt müssen dann entsprechende Angaben vorhanden sein.



dermoritz hat gesagt.:


> Meine ursprüngliche Vorstellung war, dass man eventuell auch irgendwie die Zwischenrevisionen - die die man ins Repository hochlädt mit der Revisionsnummer aus SVN benennt.


Das könnte man machen wenn man es möchte. Aber dazu sind SNAPSHOT Releases genau da...



dermoritz hat gesagt.:


> Oder allgemein: ich dachte das irgendeine Interaktion zwischen SVN und Maven stattfinden könnte/sollte wenn man irgendwas commited (Benennung des Snapshots anpassen?) ODER etwas ins Repository stellt (automatischer comit).


Ja es gäbe eine Möglichkeit das Committen/Branches etc. über Maven zu machen. Das halte ich aber nicht wirklich für Sinnvoll...



dermoritz hat gesagt.:


> Aber im Rückblick erscheint es viel sinnvoller Maven und SVN erstmal getrennt zu halten und nur "Releases" zu "melden". Also danke - manchmal sind Antworten einfach so einfach ;-)


Moment. Damit wir uns nicht falsch Verstehen, immer wieder zwischen durch einchecken selbstverständlich. Eine Release erstellen (mvn release:xxx) bedeutet ja, dass eine Tag im SVN Erzeugt wird und das Ergebnis im entsprechenden Maven-Repository abgelegt wird.


Gruß
Karl Heinz Marbaise


----------



## dermoritz (17. Mai 2010)

Inzwischen hab ich das ganze mal ausprobiert und bin begeistert! Insbesondere zusammen mit einem Repository-Manager (Trennung von Release und Snapshot Repository) ist das eine sehr feine und saubere Lösung .

Übrigens eine sehr gute Schritt für Schrittanleitung ist das: Maven and Source Control Management in Subversion - GX DeveloperWeb - GX Developerweb - Wiki


----------

