Importowanie projektu Maven do Eclipse z Git

100

Jak mogę uzyskać efekt wyboru importu zarówno z Mavena, jak i Gita i sprawić, by Eclipse poprawnie wygenerował mój projekt?

Aby przenieść projekt do Eclipse, mogę wybrać Plik-> import-> maven, a następnie pobieram wszystkie projekty Maven zaimportowane i mogę dobrze zbudować, lub mogę wybrać Plik-> import-> git i stworzyć nowy projekt, który ignoruje pom .xml i nie generuje poprawnie projektu.

Wygląda na to, że mogę zrobić jedno lub drugie, ale nie mogę łączyć obu, więc otrzymuję poprawnie wygenerowany projekt.

Arthur Ulfeldt
źródło

Odpowiedzi:

103

Dzięki Eclipse Indigo + M2Eclipse 1.0 jest to bardzo łatwe.

Jeśli nie masz jeszcze złącza Git dla M2Eclipse, zainstaluj je. M2Eclipse pomoże Ci w tym, podpowiadając menu Importuj.

  1. Wybierz menu kontekstowe „Importuj ...” w widoku Eksploratora pakietów
  2. Wybierz opcję „Sprawdź projekty Maven z SCM” w kategorii Maven
  3. W wyświetlonym oknie wybierz link „Znajdź więcej złączy SCM w m2e Marketplace
  4. Znajdź łącznik dla Git ... zainstaluj ... uruchom ponownie

Zwróć uwagę, że w polu wyszukiwania może być konieczne wpisanie „EGit” zamiast „Git”, aby znaleźć odpowiedni łącznik.

Po wykonaniu tej czynności wystarczy przejść do repozytorium EGit, wywołać menu kontekstowe katalogu roboczego i wybrać opcję „Importuj projekty Maven ...”.

Gotowe!

Sri Sankaran
źródło
4
Zrobiłem to w Indigo, ale w Juno jest obecnie błąd uniemożliwiający zainstalowanie m2e-git SCM. bugs.eclipse.org/bugs/…
Codey McCodeface
1
@ medPhys-pl Wydaje się, że jest to problem dotyczący m2e i EGit, a nie samego Gita.
Sri Sankaran
1
„łatwe” jest względne. Cały rynek eclipse to bałagan , repostiorie maven to bałagan, ponieważ nie śledzą kompatybilności, więc dostajesz dziesiątki kopii prawie identycznego pakietu, a teraz dodanie „m2e marketplace” nie poprawia sytuacji .
WYJŚCIE - Anony-Mousse
1
@ Anony-Mousse: Zgadzam się, że „łatwe” jest względne. Jednak użyłem tego, aby opisać swoje doświadczenie w rozwiązywaniu pierwotnego pytania (importowanie do Eclipse z repozytorium Git). Twoje zastrzeżenia mogą być słuszne, ale nie są rozwiązywane.
Sri Sankaran
2
W kroku 4 jest poprawka, powinno to być "..łącznik dla EGit ..". Mówiąc konkretnie, wyszukaj m2e-egit na rynku.
nanospeck
41

Wykonałbym klon gita za pomocą wiersza poleceń (poza Eclipse), a następnie użyj Plik -> Importuj ... -> Istniejące projekty Maven .

Twoje projekty będą rozumiane jako korzystające z Git i Maven. To najszybszy i najbardziej niezawodny sposób importowania IMO.

joelittlejohn
źródło
3
Tak, to zdecydowanie działa, ale nowszy m2 w końcu uzyskał dobrą integrację z git i svn. Jak zauważyli inni, EGit 1.0.0, m2e 1.0 i m2e-egit 0.13 dadzą ci git -> materialize mvn project to eclipse w jednym kroku.
thetoolman
Hmm, musiałem kliknąć projekt prawym przyciskiem myszy i użyć polecenia „Zespół> Udostępnij projekt” itp., Aby EGit rozpoznał, że jest to projekt Git.
Brian McCutchon
19

Krok 1: Konfiguracja Eclipse

Przede wszystkim musisz mieć zainstalowanych kilka wtyczek Eclipse. Skorzystaj więc z funkcji instalacji oprogramowania eclipse IDE w rozwijanym menu pomocy → Zainstaluj nowe oprogramowanie i dodaj łącze do strony z dostępnym oprogramowaniem, a następnie zainstaluj je.

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

    Zainstaluj z M2E Marketplace (Ustawienia → Maven → Odkrycie → Otwórz katalog i wyszukaj „m2e-egit”)


Krok 2: Sklonuj repozytorium

Sklonuj (pobierz) swoje projekty Maven z Git

Sprawdź projekty Maven bez zaćmienia z Git (Plik → Importuj .. → Maven → Sprawdź projekty Maven z SCM)

Plik → Importuj .. → Maven → Sprawdź projekty Maven z SCM

Teraz dodaj link do repozytorium git w polu URI SCM, a następnie kliknij Dalej i zakończ.

Tharindu Rajarathna
źródło
18

W chwili pisania tego (zaktualizowanego) zapisu, konfiguracja robocza wygląda następująco:

  1. Eclipse 3.8 (witryna z aktualizacjami Eclipse Indigo)
  2. EGit 1.3.0 (strona aktualizacji Eclipse Indigo)
  3. m2e 1.0.200 (witryna aktualizacji Eclipse Indigo)
  4. m2e-egit 0.14.0 (m2e marketplace podczas dodawania łącznika)

Testowane na Ubuntu Raring.

Z pewnością możesz „Importuj” -> „Maven” -> „Sprawdź projekty Maven z SCM”, a to najszybszy sposób. Jednak taki bezpośredni import nie daje obecnie kontroli nad nazwą folderu sklonowanego repozytorium. Lepiej byłoby pracować w widoku „Repozytorium Git” i wykonać „Klonowanie z repozytorium Git i dodać klon do tego widoku”, a następnie „Importuj projekty Maven” z takiego klonu; najdłuższym sposobem byłoby ręczne klonowanie, a następnie „Dodaj istniejące lokalne repozytorium Git do tego widoku”, a następnie ponownie „Importuj projekty Maven”. W każdym przypadku masz pełną kontrolę nad sklonowanym folderem.

Ostatni komentarz na temat pobocznego problemu, który sprawił, że płakałem z frustracji. O ile wiem, jeśli sklonowane repozytorium znajduje się w katalogu głównym twojego obszaru roboczego Eclipse, a hierarchia plików twojego projektu Maven ma POM na swoim katalogu głównym, to importowanie takiego projektu głównego zmieni nazwę sklonowanego folderu (z wybranym szablonem, domyślne do [artifactId]). Bez zmiany struktury projektu i bez przechowywania plików poza obszarem roboczym możesz łatwo obejść ten problem, klonując do podfolderu folderu obszaru roboczego.

Luca Geretti
źródło
13

Testowałem to w moim projekcie.

  1. Eclispe Indigo
  2. „Pomoc> Zainstaluj nowe oprogramowanie” Włącz / zainstaluj oficjalne wtyczki Git w „Eclipse Git Plugin ..” i zainstaluj wiele.
  3. Włącz łącznik Maven / EGit za pomocą tych instrukcji. Jak uzyskać integrację git podczas pracy z m2eclipse?
  4. Przejdź do perspektywy repozytorium Git. Kliknij prawym przyciskiem myszy wklej adres URL projektu git. Wszystkie wartości domyślne powinny działać. Możesz chcieć zmienić zgadywany folder instalacyjny.
  5. Rozwiń sklonowane repozytorium i kliknij prawym przyciskiem myszy „Drzewo robocze” i wybierz „Importuj projekty Maven ...”.
  6. Przejdź do perspektywy Java. Kliknij projekt prawym przyciskiem myszy i wybierz „Zespół> Udostępnij projekt”. Wybierz „Git” i pamiętaj, aby zaznaczyć pole „Użyj lub utwórz repozytorium w folderze nadrzędnym projektu”.
simbo1905
źródło
1
Tak, zrobiłem to samo. Nie rozumiem, dlaczego m2e-egit nie wykonuje kroku 6. automatycznie.
xmedeko
6

Oto moje obejście, to jest rozwiązanie tych problemów:

  • Nie możesz zainstalować m2e-egit (w Juno pojawia się błąd)
  • Konwersja projektu ogólnego (połączonego z repozytorium Git) do projektu Maven nie działa dla Ciebie (krok Importuj projekty Maven wydaje się niezbędny)
  • Importowanie projektów Maven z repozytorium w systemie plików nie pokazuje projektu podłączonego do Git.

  1. Skonfiguruj repozytorium Git w perspektywie eksploracji repozytorium Git .
    • Przejdź do perspektywy Java, Importuj> Istniejące projekty Maven
    • Przejdź do swojego pobrania Git w systemie plików, wybierz katalog zawierający plik pom.xml. Zakończ import; zauważysz, że te projekty nie są połączone z Git. :-(
    • Usuń te projekty, ale NIE USUWAJ Z SYSTEMU PLIKÓW . Nie chcemy, aby nasz klon został usunięty; to zadanie również pozostawia plik .project, abyśmy mogli zaimportować w następnym kroku.
  2. Wróć do perspektywy eksploracji repozytorium Git .
    • Kliknij prawym przyciskiem myszy repozytorium, Importuj projekty ...
    • Wybierz Importuj istniejące projekty
    • W eksploratorze poniżej przejdź do katalogu zawierającego pom.xml (i plik projektu) i wybierz go, a następnie kliknij przycisk dalej.
    • Kontynuuj pracę kreatora.
Arlo
źródło
W Eclipse Luna działało po kroku 1.2 (projekt został podłączony do Gita po pierwszym imporcie).
PJ_Finnegan
4

Importuj bez instalowania dodatkowych złączy dla Mylyn:

  1. otwarty Git Repositories widok (Okno-> Pokaż widok-> Repozytoria Git)
  2. naciśnij Clone a Git Repository przycisk i wykonaj wszystkie kroki
  3. W nowo utworzonym repozytorium rozwiń Working Directory, kliknij prawym przyciskiem myszy folder z projektem i wybierz Import Projects. Następnie wybierz Import existing projectslub wybierz Import as general project. W razie potrzeby po zaimportowaniu kliknij prawym przyciskiem myszy swój projekt i wybierz Konfiguruj-> Konwertuj na projekt Maven (i Maven-> Aktualizuj projekt).
kolobok
źródło
3

Należy zauważyć, że umieszczenie wygenerowanych metadanych pod kontrolą wersji (niech będzie to git lub jakikolwiek inny scm), nie jest dobrym pomysłem, jeśli nad bazą kodu pracuje więcej niż jeden programista. Dwóch programistów może mieć zupełnie inny projekt lub konfigurację ścieżki klas. Tak samo, jak na wypadek, gdybyś zamierzał kiedyś udostępnić kod ...

Peter Hägg
źródło
2

Mam projekt maven z trzema modułami podrzędnymi, który jest zarządzany w git. Ustawiłem je w zaćmieniu w następujący sposób:

  1. Zarejestrowałem repozytorium git z eclipse przy użyciu EGit
  2. Zaimportowałem projekty jako istniejące projekty Maven
  3. Dla każdego projektu wybrałem Team | Udostępnij projekt .
Tom Norton
źródło
1

Wolałbym importować projekty do Eclipse jako mavenprojekty, a nie jako gitprojekt. Dzięki temu zawartość projektu nadal będzie rozpoznawana jako zawartość gita. Możesz kontynuować wykonywanie operacji git z Eclipse. Jak wspomniałeś, sytuacja odwrotna nie jest prawdą.

Charakter projektu w Eclipse nie jest oparty na SCM, który zawiera projekt, ale na typie projektu - czy to wojna, czy słoik itp. - który jest określany automagicznie, gdy projekt jest importowany jako projekt maven.

Wahałbym się, czy zalogować się do metadanych specyficznych dla SCM IDE. Robiąc to, zakłada się wiele rzeczy - wszyscy programiści używają tego samego IDE lub wersji IDE, być może tej samej wersji JDK / JRE, że nadal używają tej samej wersji przez cały cykl życia projektu i tak dalej.

Raghuram
źródło
1

Nie można zaimportować go jako projekt git, a następnie (jeśli masz m2eclipse zainstalowane) prawym przyciskiem myszy na projekcie w Package Explorer > Maven> Enable Dependency Management?

dimitrisli
źródło
1
Jeśli nie jest widoczny i masz zainstalowany m2e, otwórz plik .project i samodzielnie dodaj maven2 nature: <name> org.eclipse.m2e.core.maven2Builder </name>
dimitrisli
1

Po sprawdzeniu mojej gałęzi w Egit, przełączyłem się do Java View, potem użyłem File -> Import, Git -> Projects from Git, po czym wybrałem katalog maven najwyższego poziomu. Tak było z Eclipse Kepler.

Niespokojny
źródło
-3

Zamiast ciągłego generowania metadanych projektu za pomocą polecenia import-> maven, możesz raz wygenerować metadane projektu i umieścić je w repozytorium git wraz z resztą kodu źródłowego. Następnie użycie polecenia import-> git zaimportuje odpowiedni projekt z obsługą Mavena, zakładając, że masz zainstalowane narzędzia Maven.

Upewnij się, że w systemie kontroli wersji zostały umieszczone wszystkie pliki w katalogu projektu, które zaczynają się od „.” takie jak .classpath i .project wraz z całą zawartością katalogu .settings.

Konstantin Komissarchik
źródło