# Maven und SCM (Best practices)



## DamienX (15. Okt 2009)

Hallo zusammen,

ich habe die letzten paar Tage damit verbracht Maven2 kennen zu lernen und
kanns nur weiterempfehlen.

Nun stehe ich davor ein etwas größeres Projekt aufzusetzen. 

Das Projekt besteht dabei aus einem Basisprojekt mit 3 Modulen. 
Maven-seitig gibts keine Probleme allerdings stehe ich nun vor der Frage
wie man die Versionsverwaltung "Maven-freundlich" gestaltet.

Ich benutze für die Versionskontrolle ein SVN repository und Eclipse Galileo
mit M2eclipse und Subclipse. Die SVN Ordnerstruktur ist dabei wie so oft...

Projekt1
  |-- trunk
  |-- branches
  |-- tags

Projekt2
  |-- trunk
  |-- branches
  |-- tags

usw.

Nun gilt es für mich Eclipse, Maven und SVN unter einen Hut zu bringen.

Wäre es nur ein einzelnes Projekt würde ich die Ordnerstruktur einfach
mit der pom.xml einchecken und die müsigen Dateien und Ordner (target, IDE settings etc.)
mit SVN ignore draußen halten.

Im Klartext würde ich gerne meine Maven Projektstruktur mit letztendlich 3 Maven Projekten
beibehalten ohne das ich mir selbst bei der Versionskontrolle in den weg komme 
(z.B. sind die Module ja wiederrum Unterordner des Oberprojektes. Diese sind allerdings wiederum 
Maven-Projekte). 

Da meine Firma (für den Moment) noch kein Maven benutzt kann ich auf keine Erfahrungswerte
zurückgreifen. 

Kann mir hier jmd aushelfen bzw. den ein oder anderen Tipp geben wie solche Geschichten
aufgesetzt werden? Gibts ausser den sourcen/tests und dem pom.xml noch etwas das dringend
mit ins Projekt muss?

Danke im voraus!
Mfg Alex


----------



## maki (15. Okt 2009)

Bin auch ein Maven2 Fan, allerdings bevorzuge ich Subversive statt Eclipse, ist auch das offizielle Subversion Plugin für Eclipse  



> Im Klartext würde ich gerne meine Maven Projektstruktur mit letztendlich 3 Maven Projekten
> beibehalten ohne das ich mir selbst bei der Versionskontrolle in den weg komme
> (z.B. sind die Module ja wiederrum Unterordner des Oberprojektes. Diese sind allerdings wiederum
> Maven-Projekte).


Module sollten nicht eigene Repositories bzw. Verszeichnisstrukturen haben (trunk, tags, branches), sondern unter dem Parent Projekt liegen, gehören ja auch zusammen 
Soweit ich weiss sollte das auch der "Maven way" .
Dadurch brauchst du nur in der Parent POM die Repo URL angeben, den Rest macht Maven2 bzw. m2eclipse und Subversive automatisch.

Würde dir dringend empfehlen ein eigenes Repo aufzusetzen, ich bevorzuge Artifatory.


----------



## DamienX (15. Okt 2009)

Würde es hier ein rating für die Beiträge geben würd ich dir nun 11/10 geben.

Artifactory läuft wunderbar, das Subversive plugin ebenfalls und deine Versprechen ...



			
				maki hat gesagt.:
			
		

> Dadurch brauchst du nur in der Parent POM die Repo URL angeben, den Rest macht Maven2 bzw. m2eclipse und Subversive automatisch.



konnteste auch einhalten.

Vielen dank!!
Alex


----------

