Importieren eines Maven-Projekts aus Git in Eclipse

100

Wie kann ich den Effekt erzielen, dass ich mich für den Import aus Maven und Git entscheide und Eclipse mein Projekt ordnungsgemäß generieren lässt?

Um mein Projekt in Eclipse zu integrieren, kann ich Datei-> Importieren-> Maven wählen und dann alle Maven-Projekte importieren und gut erstellen. Oder ich kann Datei-> Importieren-> Git wählen und ein neues Projekt erstellen, das den POM ignoriert .xml und generiert das Projekt nicht richtig.

Es scheint, dass ich das eine oder andere tun kann, aber nicht beide kombinieren kann, um ein korrekt generiertes Projekt zu erhalten.

Arthur Ulfeldt
quelle

Antworten:

103

Eclipse Indigo + M2Eclipse 1.0 macht es sehr einfach.

Wenn Sie den Git-Connector für M2Eclipse noch nicht haben, installieren Sie ihn. M2Eclipse hilft Ihnen dabei, indem es Sie im Menü Import auffordert.

  1. Wählen Sie in der Paket-Explorer-Ansicht das Kontextmenü "Importieren ..."
  2. Wählen Sie in der Kategorie Maven die Option "Maven-Projekte aus SCM auschecken"
  3. Wählen Sie im angezeigten Fenster den Link "Weitere SCM-Konnektoren auf dem m2e-Marktplatz suchen"
  4. Suchen Sie den Connector für Git ... install ... restart

Beachten Sie, dass Sie im Suchfeld möglicherweise "EGit" anstelle von "Git" eingeben müssen, um den richtigen Anschluss zu finden.

Gehen Sie dazu einfach zum EGit-Repository, rufen Sie das Kontextmenü für das Arbeitsverzeichnis auf und wählen Sie "Maven-Projekte importieren ...".

Getan!

Sri Sankaran
quelle
4
Ich habe dies in Indigo getan, aber in Juno gibt es derzeit einen Fehler, der die Installation des m2e-git SCM verhindert. bugs.eclipse.org/bugs/…
Codey McCodeface
1
@ medPhys-pl Das scheint ein Problem zu sein, das m2e und EGit betrifft und nicht Git selbst.
Sri Sankaran
1
"einfach" ist relativ. Der gesamte Eclipse-Marktplatz ist ein Chaos , Maven-Repostiories sind ein Chaos, weil sie die Kompatibilität nicht verfolgen. Sie erhalten also Dutzende Kopien des fast identischen Pakets, und das Hinzufügen eines "m2e-Marktplatzes" macht die Dinge nicht besser .
Hat aufgehört - Anony-Mousse
1
@ Anony-Mousse: Ich stimme zu, dass "einfach" relativ ist. Ich habe dies jedoch verwendet, um meine Erfahrung bei der Beantwortung der ursprünglichen Frage zu beschreiben (Import von einem Git-Repo in Eclipse). Ihre Griffe sind möglicherweise gültig, werden jedoch nicht angesprochen.
Sri Sankaran
2
Es gibt eine Korrektur in Schritt 4, es sollte "..connector for EGit .." sein. Um genau zu sein, suchen Sie m2e-egit auf dem Markt.
Nanospeck
41

Ich würde einen Git-Klon über die Befehlszeile (außerhalb von Eclipse) ausführen und dann Datei -> Importieren ... -> Vorhandene Maven-Projekte verwenden .

Ihre Projekte werden so verstanden, dass sie Git und Maven verwenden. Dies ist der schnellste und zuverlässigste Weg, IMO zu importieren.

joelittlejohn
quelle
3
Ja, das funktioniert definitiv, aber der neuere m2 hat endlich eine gute Integration mit git und svn. Wie andere angemerkt haben, erhalten Sie mit EGit 1.0.0, m2e 1.0 und m2e-egit 0.13 git -> materialisieren Sie das mvn-Projekt in einem Schritt zur Verfinsterung.
Thetoolman
Hmm, ich musste mit der rechten Maustaste auf das Projekt klicken und "Team> Projekt teilen" usw. verwenden, damit EGit erkennt, dass es sich um ein Git-Projekt handelt.
Brian McCutchon
19

Schritt 1: Eclipse einrichten

Zunächst müssen einige Eclipse-Plug-Ins installiert sein. Verwenden Sie daher die Installationsfunktion der Eclipse IDE-Software im Dropdown-Menü Hilfe → Neue Software installieren , fügen Sie einen Link zur Website für verfügbare Software hinzu und installieren Sie sie.

  1. GIT-Plugin (EGIT) - http://download.eclipse.org/egit/updates
  2. Eclipse Maven-Plugin (M2Eclipse) - http://download.eclipse.org/technology/m2e/releases
  3. Maven SCM Handler für EGit (m2e-egit)

    Installation vom M2E-Marktplatz (Einstellungen → Maven → Ermittlung → Katalog öffnen und nach "m2e-egit" suchen)


Schritt 2: Klonen Sie das Repository

Klonen (herunterladen) Sie Ihre Maven-Projekte von Git

Auschecken von Maven-Projekten ohne Eclipse von Git (Datei → Importieren .. → Maven → Auschecken von Maven-Projekten von SCM)

Datei → Importieren .. → Maven → Maven-Projekte aus SCM auschecken

Fügen Sie nun Ihren Git-Repository-Link zum SCM-URI-Feld hinzu. Klicken Sie dann auf Weiter und beenden Sie den Vorgang.

Tharindu Rajarathna
quelle
18

Zum Zeitpunkt dieses (aktualisierten) Schreibens ist ein funktionierendes Setup das Folgende:

  1. Eclipse 3.8 (Eclipse Indigo Update Site)
  2. EGit 1.3.0 (Eclipse Indigo Update Site)
  3. m2e 1.0.200 (Eclipse Indigo Update Site)
  4. m2e-egit 0.14.0 (m2e-Marktplatz beim Hinzufügen eines Steckverbinders)

Getestet auf Ubuntu Raring.

Sie können sicherlich "Importieren" -> "Maven" -> "Maven-Projekte aus SCM auschecken", und dies ist der schnellste Weg. Ein solcher direkter Import gibt Ihnen derzeit jedoch keine Kontrolle über den Namen des geklonten Repository-Ordners. Möglicherweise ist es besser, in der Ansicht "Git Repository" zu arbeiten und entweder einen "Klon aus einem Git Repository" auszuführen und den Klon zu dieser Ansicht hinzuzufügen, gefolgt von einem "Import Maven Projects" aus einem solchen Klon. Der längste Weg wäre, Ihr manuelles Klonen durchzuführen und dann "Ein vorhandenes lokales Git-Repository zu dieser Ansicht hinzufügen", gefolgt von einem "Import Maven Projects". In beiden Fällen haben Sie die volle Kontrolle über den geklonten Ordner.

Ein letzter Kommentar zu einem Nebenproblem, das mich frustriert zum Weinen brachte. Wenn sich das geklonte Repository im Stammverzeichnis Ihres Eclipse-Arbeitsbereichs befindet und Ihre Maven-Projektdateihierarchie einen POM im Stammverzeichnis hat, wird beim Importieren eines solchen Stammprojekts der geklonte Ordner umbenannt (standardmäßig mit der von Ihnen ausgewählten Vorlage) zu [Artefakt-ID]). Ohne Ihre Projektstruktur zu ändern und ohne Dateien außerhalb Ihres Arbeitsbereichs zu belassen, können Sie dieses Problem einfach umgehen, indem Sie in einen Unterordner des Arbeitsbereichsordners klonen.

Luca Geretti
quelle
13

Ich habe dies für mein Projekt getestet.

  1. Eclispe Indigo
  2. "Hilfe> Neue Software installieren" Aktivieren / Installieren Sie offizielle Git-Plug-Ins unter "Eclipse Git Plugin .." und installieren Sie das Los.
  3. Aktivieren Sie den Maven / EGit-Connector mit diesen Anweisungen. Wie funktioniert die Git-Integration mit m2eclipse?
  4. Wechseln Sie zur Git Repository-Perspektive. Klicken Sie mit der rechten Maustaste, um die Projekt-Git-URL einzufügen. Die Standardeinstellungen sollten alle funktionieren. Möglicherweise möchten Sie den Installationsordner ändern, den es vermutet.
  5. Erweitern Sie das geklonte Repository, klicken Sie mit der rechten Maustaste auf "Arbeitsbaum" und wählen Sie "Maven-Projekte importieren ...".
  6. Wechseln Sie in die Java-Perspektive. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie "Team> Projekt teilen". Wählen Sie "Git" und aktivieren Sie das Kontrollkästchen "Repository im übergeordneten Ordner des Projekts verwenden oder erstellen".
simbo1905
quelle
1
Ja, ich habe das gleiche getan. Verstehe nicht, warum m2e-egit Schritt 6 nicht automatisch ausführt.
Xmedeko
6

Hier ist meine Problemumgehung: Dies ist eine Lösung für diese Probleme:

  • Sie können m2e-egit nicht installieren (ich erhalte eine Fehlermeldung in Juno)
  • Das Konvertieren eines allgemeinen Projekts (verbunden mit Ihrem Git-Repository) in ein Maven-Projekt funktioniert bei Ihnen nicht (Der Schritt "Maven-Projekte importieren" scheint wichtig zu sein.)
  • Beim Importieren von Maven-Projekten aus Ihrem Repository in das Dateisystem wird das mit Git verbundene Projekt nicht angezeigt.

  1. Richten Sie Ihr Git-Repository in der Perspektive " Git Repository Exploring" ein .
    • Wechseln Sie in die Java-Perspektive, Importieren> Vorhandene Maven-Projekte
    • Navigieren Sie zu Ihrer Git-Kasse im Dateisystem und wählen Sie das Verzeichnis aus, das die Datei pom.xml enthält. Beenden Sie den Import. Sie werden feststellen, dass diese Projekte nicht mit Git verbunden sind. :-(
    • Löschen Sie diese Projekte, aber LÖSCHEN SIE NICHT AUS DEM DATEISYSTEM . Wir möchten nicht, dass unser Klon gelöscht wird. Diese Aufgabe hinterlässt auch die .project-Datei, damit wir im nächsten Schritt importieren können.
  2. Kehren Sie zur Perspektive " Git Repository Exploring" zurück .
    • Klicken Sie mit der rechten Maustaste auf Ihr Repository, Projekte importieren ...
    • Wählen Sie Vorhandene Projekte importieren
    • Navigieren Sie im folgenden Explorer zu dem Verzeichnis mit der Datei pom.xml (und der Projektdatei) und wählen Sie es aus. Klicken Sie dann auf Weiter.
    • Fahren Sie mit dem Assistenten fort.
Arlo
quelle
In Eclipse Luna funktionierte es nach Schritt 1.2 (das Projekt wurde nach dem ersten Import mit Git verbunden).
PJ_Finnegan
4

Importieren Sie, ohne zusätzliche Anschlüsse für Mylyn zu installieren:

  1. Öffnen Git RepositoriesAnsicht (Window-> anzeigen view-> Git - Repositorys)
  2. Drücken Sie die Clone a Git RepositoryTaste und fahren Sie mit allen Schritten fort
  3. Working DirectoryKlicken Sie in der neu erstellten Repository-Erweiterung mit der rechten Maustaste auf den Ordner mit Ihrem Projekt und wählen Sie Import Projects. Dann entweder wählen Import existing projectsoder wählen Import as general project. Klicken Sie bei Bedarf nach dem Import mit der rechten Maustaste auf Ihr Projekt und wählen Sie Konfigurieren-> In Maven-Projekt konvertieren (und Maven-> Projekt aktualisieren).
Kolobok
quelle
3

Sie sollten beachten, dass es keine gute Idee ist, generierte Metadaten unter Versionskontrolle zu stellen (sei es Git oder ein anderer SCM), wenn mehr als ein Entwickler an der Codebasis arbeitet. Zwei Entwickler haben möglicherweise ein völlig anderes Projekt- oder Klassenpfad-Setup. Nur als Heads-up für den Fall, dass Sie den Code irgendwann teilen möchten ...

Peter Hägg
quelle
2

Ich habe ein Maven-Projekt mit drei Submodulen, das in Git verwaltet wird. Ich habe sie wie folgt in Eclipse eingerichtet:

  1. Ich habe das Git-Repository bei Eclipse mit EGit registriert
  2. Ich habe die Projekte als vorhandene Maven-Projekte importiert
  3. Für jedes Projekt ging ich Team | Projekt teilen .
Tom Norton
quelle
1

Ich würde lieber Projekte als mavenProjekte in Eclipse importieren alsgit Projekt. Auf diese Weise können die Projektinhalte weiterhin als Git-Inhalte erkannt werden. Sie können weiterhin Git-Operationen von Eclipse aus ausführen. Wie Sie bereits erwähnt haben, ist das Gegenteil nicht der Fall.

Die Art eines Projekts in Eclipse basiert nicht auf dem SCM, in dem sich das Projekt befindet, sondern auf der Art des Projekts - ob Krieg oder Glas usw. -, das automatisch bestimmt wird, wenn das Projekt als Maven-Projekt importiert wird.

Ich würde zögern, in SCM IDE-spezifische Metadaten einzuchecken. Dies setzt viele Dinge voraus - alle Entwickler verwenden dieselbe IDE oder Version der IDE, möglicherweise dieselbe Version von JDK / JRE, und verwenden während des gesamten Projektlebenszyklus weiterhin dieselbe Version usw.

Raghuram
quelle
1

Sie können nicht importieren sie als git Projekt und dann (wenn Sie das haben m2eclipse installiert) Rechtsklick auf das Projekt im Paket - Explorer > Maven> Enable Dependency Management?

dimitrisli
quelle
1
Wenn nicht sichtbar und Sie m2e installiert haben, öffnen Sie die .project-Datei und fügen Sie die maven2-Natur selbst hinzu: <name> org.eclipse.m2e.core.maven2Builder </ name>
dimitrisli
1

Nachdem ich meinen Zweig in Egit ausgecheckt hatte, wechselte ich zur Java-Ansicht, verwendete Datei -> Importieren, Git -> Projekte von Git und wählte dann das Maven-Verzeichnis der obersten Ebene aus. Dies war mit Eclipse Kepler.

Geil
quelle
-3

Anstatt ständig Projektmetadaten über den Befehl import-> maven zu generieren, können Sie Ihre Projektmetadaten einmal generieren und zusammen mit dem Rest Ihres Quellcodes in Ihrem Git-Repository ablegen. Nach dem Importieren des Befehls import-> git wird ein ordnungsgemäßes Maven-fähiges Projekt importiert, vorausgesetzt, Sie haben Maven-Tools installiert.

Stellen Sie sicher, dass alle Dateien im Projektverzeichnis, die mit '.' Beginnen, im Quellcodeverwaltungssystem abgelegt werden. wie .classpath und .project zusammen mit dem gesamten Inhalt des Verzeichnisses .settings.

Konstantin Komissarchik
quelle