Maven Mulitmodule projects und SVN

B

bygones

Gast
Hi,

wir wollen ein mehrschichtiges Mulitmodule project bauen.

Idee wäre

Common (pom)
|____ Project-A (pom)
|______ Module-aa (jar)
|______ Module-bb (jar)
|____ Project-B
|______ Module-cc (jar)
|______ Module-dd (jar)

Wenn wir nun "Common" mit SVN committen wollen haut er schlussendlich folgende Struktur ins SVN:

Common (pom)
Project-A
|______ Module-aa (jar)
|______ Module-bb (jar)
Project-B
|______ Module-cc (jar)
|______ Module-dd (jar)

d.h. er verliert die Beziehung der Projects zum Common

Warum ? Fuer SVN ist das alles doch eine simple File-Order-Struktur, das sollte doch so eingecheckt werden wie es im lokalen Filesystem vorliegt... dass nun m2eclipse daraus eine andere Struktur bastelt sollte doch egal sein ?

Ist es generell sinnvoll eine solche verschachtelte Struktur zu haben ? Die Idee ist, dass man seine Builds auf versch. Ebenen haben kann. Während des CI Betriebs werden die Module gebaut bzw deren Projekte. In regelmäßigen, größeren Abständen will man das komplette bauen und würde dann Common starten.

Danke
 
M

maki

Gast
Im <SCM> Element der POM kann man angeben, welches SCM Repo etc verwendet wird, samt URL.
Dieses Element wird vererbt und dabei angepasst, wenn Common zB. die URL svn://server/repo/common/trunk enthält, sollte project-a automatisch die URL svn://server/repo/common/project-a/trunk erhalten.

Es geht aber auch ohne SCM Tag, dann kümmert sich SVN selbst darum.

Ehrlich gesagt verstehe ich deine Strutkuren auch nicht, sehen für mich gleich aus...

Code:
common/pom.xml
common/project-a/pom.xml
common/project-a/module-aa
common/project-a/module-bb
common/project-b/pom.xml
common/project-b/module-cc
common/project-b/module-dd
 
B

bygones

Gast
wir haben noch gar keine Struktur in den poms angegeben... vll macht SVN hier irgendwelche extraspielchen....
 
B

bygones

Gast
ok.. mit dem SCM hat das funktioniert.

Nun aber der andere weg.

Ich will das Oberprojekt "Common" auschecken. Ich hätte nun vermutet, dass m2eclipse automatisch die Unterprojekte bzw die Module erkennt und sie als Eclipse Projekte anzeigt. Ich kann ganz normal über die poms Maven befehle ausführen, aber die Unterprojekte werden nicht gesondert angezeigt ?

Muss ich da noch irgendeine magic machen ?
 
M

maki

Gast
Ja, magic :)

Du kannst die Maven Projekte als solche kenntlich machen:
Import.. -> Maven -> Existing Maven projects
Dann den Pfad des Parent Projektes auswhlen, nun solltest du die Liste der zu importierenden Maven Module bekommen.
 

kama

Top Contributor
Hallo,

Common (pom)
|____ Project-A (pom)
|______ Module-aa (jar)
|______ Module-bb (jar)
|____ Project-B
|______ Module-cc (jar)
|______ Module-dd (jar)

Ist es generell sinnvoll eine solche verschachtelte Struktur zu haben ? Die Idee ist, dass man seine Builds auf versch. Ebenen haben kann. Während des CI Betriebs werden die Module gebaut bzw deren Projekte. In regelmäßigen, größeren Abständen will man das komplette bauen und würde dann Common starten.
Das ist auf jeden fall Sinnvoll...

Was ich aber nicht nachvollziehen kann ist warum nur manchmal "Common gestartet werden soll" ? Man kann im Hudson die URL im SVN vom Common angeben der Hudson check aus und dann wird der Multimodul build gestartet...

Wenn man jetzt noch die Option "Incremental Build" im Hudson aktiviert wird nur dass module bzw. die Module gebaut die davon abhängen...das ist viel einfacher...

Gruß
Karl Heinz Marbaise
 

Neue Themen


Oben