Eclipse + Subversion (Subklipse) + Maven (m2eclipse) Multi-Modul-Projekt

8

Ich habe einige verwandte ältere Projekte, die ein Durcheinander sind, und ich möchte sie als ein Multi-Modul-Projekt, das auf Subversion geteilt wird, mavenisieren (das erste Multi-Modul-Projekt, wir hatten sie immer getrennt). Es gibt ein paar wichtige Teile 1) Webservice, 2) verschiedene Swing Clients, 3) Modell (mit Persistenz aus dem Winterschlaf), 4) Kern JSE Aufgaben.

Ich habe ein paar Tage damit verbracht, es mit Eclipse (Helios), Maven (2.2.1), m2eclipse (0.10.0) und Subversion (1.6) für unser Team richtig einzurichten. Ich prüfe mich immer wieder selbst oder habe zufällige Fehler, die mich zwingen, mich zurückzuziehen. Ich hoffe, dass mir jemand mit Best Practices helfen kann.

Hier sind einige der Fragen:

m2eclipse benötigt eine "flache" Eclipse-Projektstruktur. Bedeutet das, dass ich für jedes Modul ein Subversion-Repository erstellen sollte? Wenn ich ein Repository verwende und versuche, vom übergeordneten Projekt einzuchecken, habe ich Schwierigkeiten, die svn: ignore -Eigenschaft in den verschachtelten Projektzielverzeichnissen (und anderen Verzeichnissen) festzulegen.

Wenn ich ein Modul pro Repository mache, scheint es mir möglich, sie in Ordnung zu prüfen. Die Frage ist dann, was ist der beste Weg, über die Subklipse auszuchecken? Gibt es eine beste Bestellung? Eltern- oder Kindprojekt (e) zuerst? Muss ich das übergeordnete Projekt auschecken und den Checkout-Pfad des zu verschachtelnden untergeordneten Projekts im Dateiverzeichnis ändern, damit ich dann vom übergeordneten Projekt "clean installieren" kann?

Oder, sollte ich Sub- und m2eclipse aufgeben und meine Maven-Ziele über die Befehlszeile auschecken und ausführen.

Oder sollte ich nur die SCM-Integration mit Maven verwenden? Oder versuchen Sie vielleicht nicht einmal, ein Multi-Modul-Projekt einzurichten.

Was machen andere? Hat jemand eine Dokumentation (die ich vermisst habe) oder einige Links (von Google nicht empfohlen)?

Vielen Dank im Voraus für Ihr Feedback.

    
chadmaughan 29.10.2010, 18:00
quelle

2 Antworten

8
  

m2eclipse benötigt eine "flache" Eclipse-Projektstruktur.

Hmm, m2eclipse unterstützt geschachtelte Projekte AFAIK (oder importiert zumindest eine verschachtelte Projektstruktur). Ich benutze keine Eclipse-Assistenten, um meine Projekte zu erstellen, also weiß ich vielleicht nichts.

  

Heißt das, ich sollte ein Subversion-Repository für jedes Modul erstellen?

Nein, nein, absolut nicht und das würde ich nicht tun (das wird schwer zu halten sein). Abhängig von den Veröffentlichungszyklen Ihrer Projekte müssen Sie jedoch möglicherweise über das Layout Ihres Repositorys nachdenken (Single vs Multiple Trunk / Tags / Branches), insbesondere wenn Sie das Maven Release-Plugin verwenden möchten. Wenn einige Teile unabhängige Release-Zyklen haben, dann würde ich für mehrere Stamm / Tags / Zweige gehen. Wenn Sie sie immer alle zusammen (als ein einzelnes Produkt) freigeben, dann sollte ein einzelner Stamm / Tags / Zweige es tun. Ich habe mehrere Antworten zu dem Thema geschrieben, das von Interesse sein könnte:

  

Wenn ich ein Repository verwende und versuche, vom übergeordneten Projekt einzuchecken, fällt es mir schwer, die svn: ignore -Eigenschaft in den verschachtelten Projektzielverzeichnissen (und anderen Verzeichnissen) festzulegen.

Was ist das besondere Problem?

  

Wenn ich ein Modul pro Repository mache, scheint es mir möglich, sie in Ordnung zu prüfen. Die Frage ist dann, was ist der beste Weg, über die Subklipse auszuchecken? Gibt es eine beste Bestellung? Eltern- oder Kindprojekt (e) zuerst? Muss ich das übergeordnete Projekt auschecken und den Checkout-Pfad des zu verschachtelnden untergeordneten Projekts im Dateiverzeichnis ändern, damit ich dann vom übergeordneten Projekt "clean installieren" kann?

Unabhängig davon, welche Auswahl Sie treffen (mehrere Repositories oder nicht, mehrere Trunks / Tags / Zweige oder nicht), es sollte möglich sein, die gesamte Projektstruktur auf einmal auszuchecken (mit svn:externals , falls erforderlich). Zumindest sollten Sie versuchen, es möglich zu machen (und es ist, siehe die oben genannten Links).

Aber ich wiederhole, ich empfehle nicht, mehrere Repositories zu verwenden (es sei denn, Sie wollen unabhängige Revisionsnummern) und nichts zwingt Sie dazu.

  

Oder, sollte ich Sub- und m2eclipse aufgeben und meine Maven-Ziele über die Befehlszeile auschecken und ausführen.

Ich benutze Eclipse, m2eclipse, subclipse erfolgreich, alle gut integriert (zumindest für den Build und "check in" Teil). Aber ich mache den initialen Import und das erste Auschecken in der Befehlszeile und importiere dann

  

Oder sollte ich gerade die SCM-Integration mit Maven nutzen?

Ich benutze es nicht, ich habe es nicht nötig.

  

Oder versuchen Sie vielleicht nicht einmal, ein Multi-Modul-Projekt einzurichten.

Es gibt keinen Grund, die Verwendung eines Multi-Modul-Projekt-Setups zu verbieten, Multi-Modul-Builds sind einer der wichtigsten Teile von Maven.

  

Was machen andere? Hat jemand eine Dokumentation (die ich vermisst habe) oder einige Links (von Google nicht empfohlen)?

Sehen Sie sich die Links an, die ich gepostet habe:)

    
Pascal Thivent 30.10.2010, 00:30
quelle
1

Es ist zunächst ein bisschen schwierig. Die Art, wie ich es normalerweise gesehen habe, ist so:

In Subversion:

%Vor%

Einige Dinge zu beachten (Sie bereits wissen):

  • Sie müssen die Kindprojekte haben aufgelistet als Module in Ihrem Elternteil Projekt
  • Sie müssen das übergeordnete Projekt auflisten in Ihrem Kind Pom (als Elternteil Gruppe, Artefakt, Version)
  • Wenn Sie das Projekt auschecken svn, du musst 'check out als Maven - Projekt 'statt der standard 'check out' (dies kann sein ein Gotcha)

Ich hoffe, das hilft.

    
javamonkey79 29.10.2010 18:32
quelle

Tags und Links