Mengimpor proyek Maven ke Eclipse dari Git

100

Bagaimana saya bisa mendapatkan pengaruh memilih untuk mengimpor dari Maven dan Git dan meminta Eclipse membuat proyek saya dengan benar?

Untuk memasukkan proyek saya ke Eclipse saya dapat memilih File-> import-> maven dan kemudian saya mendapatkan semua proyek Maven diimpor dan dapat dibangun dengan baik, atau saya dapat memilih File-> import-> git dan membuat proyek baru yang mengabaikan pom .xml dan tidak menghasilkan proyek dengan benar.

Sepertinya saya bisa melakukan satu atau yang lain tetapi tidak menggabungkan keduanya jadi saya mendapatkan proyek yang dibuat dengan benar.

Arthur Ulfeldt
sumber

Jawaban:

103

Eclipse Indigo + M2Eclipse 1.0 membuatnya sangat mudah.

Jika Anda belum memiliki konektor Git untuk M2Eclipse, instal. M2Eclipse akan membantu Anda dengan mengarahkan Anda pada menu Impor.

  1. Pilih menu konteks "Impor ..." dari tampilan Package Explorer
  2. Pilih opsi "Lihat proyek Maven dari SCM" di bawah kategori Maven
  3. Pada jendela yang ditampilkan, pilih tautan "Temukan konektor SCM lainnya di m2e Marketplace
  4. Temukan konektor untuk Git ... instal ... restart

Perhatikan bahwa di kotak telusur Anda mungkin harus memasukkan "EGit" alih-alih "Git" untuk menemukan konektor yang benar.

Setelah selesai, cukup buka repositori EGit, buka menu konteks untuk direktori Kerja dan pilih "Impor proyek Maven ...".

Selesai!

Sri Sankaran
sumber
4
Saya telah melakukan ini di Indigo tetapi di Juno saat ini ada bug yang mencegah m2e-git SCM diinstal. bugs.eclipse.org/bugs/…
Codey McCodeface
1
@ medPhys-pl Tampaknya menjadi masalah yang berkaitan dengan m2e dan EGit dan bukan Git itu sendiri.
Sri Sankaran
1
"mudah" itu relatif. Seluruh pasar eclipse berantakan , repositori maven berantakan karena mereka tidak melacak kompatibilitas, jadi Anda berakhir dengan lusinan salinan dari paket yang hampir identik, dan sekarang menambahkan "pasar m2e" tidak membuat segalanya lebih baik .
Memiliki QUIT - Anony-Mousse
1
@ Anony-Mousse: Saya setuju bahwa "mudah" itu relatif. Namun saya menggunakannya untuk menggambarkan pengalaman saya dalam menjawab pertanyaan asli (mengimpor ke Eclipse dari repo Git). Keluhan Anda mungkin valid tetapi bukan masalah yang ditangani.
Sri Sankaran
2
Ada koreksi pada Langkah 4, seharusnya "..konektor untuk EGit ..". Untuk lebih spesifik mencari m2e-egit di pasar.
nanospeck
41

Saya akan melakukan klon git melalui baris perintah (di luar Eclipse) kemudian menggunakan File -> Impor ... -> Proyek Maven yang Ada .

Proyek Anda akan dipahami menggunakan Git dan Maven. Ini cara tercepat dan paling andal untuk mengimpor IMO.

joelittlejohn
sumber
3
Ya, ini pasti berhasil, tetapi m2 yang lebih baru akhirnya mendapatkan integrasi yang bagus dengan git dan svn. Seperti yang telah dicatat orang lain, EGit 1.0.0, m2e 1.0 dan m2e-egit 0.13 akan memberi Anda git -> mewujudkan proyek mvn untuk gerhana dalam satu langkah.
thetoolman
Hmm, saya harus mengklik kanan pada proyek dan menggunakan "Team> Share Project", dll., Agar EGit mengetahui bahwa ini adalah proyek Git.
Brian McCutchon
19

Langkah 1: Menyiapkan Eclipse

Pertama-tama Anda harus menginstal beberapa plugin Eclipse. Jadi gunakan fitur install software IDE eclipse di menu dropdown bantuan → Instal software baru , dan tambahkan link ke Situs Software yang Tersedia, lalu instal.

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

    Instal dari M2E Marketplace (Pengaturan → Maven → Penemuan → Buka Katalog dan cari "m2e-egit")


Langkah 2: Gandakan repositori

Klon (unduh) Proyek Maven Anda dari Git

Lihat Proyek Maven non-gerhana dari Git (File → Impor .. → Maven → Lihat Proyek Maven dari SCM)

File → Impor .. → Maven → Lihat Proyek Maven dari SCM

Sekarang tambahkan link repositori git Anda ke kolom URI SCM. Lalu klik next & finish.

Tharindu Rajarathna
sumber
18

Pada tulisan ini (diperbarui), pengaturan kerja adalah sebagai berikut:

  1. Eclipse 3.8 (situs pembaruan Eclipse Indigo)
  2. EGit 1.3.0 (situs pembaruan Eclipse Indigo)
  3. m2e 1.0.200 (situs pembaruan Eclipse Indigo)
  4. m2e-egit 0.14.0 (pasar m2e saat menambahkan konektor)

Diuji di Ubuntu Raring.

Anda pasti dapat "Impor" -> "Maven" -> "Lihat Proyek Maven dari SCM", dan ini adalah cara tercepat. Namun, impor langsung seperti itu saat ini tidak memberi Anda kendali atas nama folder repositori yang digandakan. Anda mungkin lebih baik bekerja dari Tampilan "Git Repository" dan melakukan "Klon dari Repositori Git dan menambahkan klon ke tampilan ini", diikuti dengan "Impor Proyek Maven" dari klon tersebut; cara terpanjang adalah melakukan kloning manual Anda dan kemudian "Tambahkan Repositori Git lokal yang ada ke tampilan ini", diikuti lagi dengan "Impor Proyek Maven". Apa pun kasusnya, Anda memiliki kendali penuh atas folder kloning.

Komentar terakhir tentang masalah sampingan yang membuat saya menangis karena frustrasi. Sejauh yang saya tahu, jika repositori kloning terletak di root ruang kerja Eclipse Anda, dan hierarki file proyek Maven Anda memiliki POM di akarnya, maka mengimpor proyek root tersebut akan mengganti nama folder kloning (dengan template yang Anda pilih, defaultnya ke [artifactId]). Tanpa mengubah struktur proyek Anda dan tanpa menyimpan file di luar ruang kerja Anda, Anda dapat dengan mudah mengatasi masalah ini dengan mengkloning pada sub-subfolder dari folder ruang kerja.

Luca Geretti
sumber
13

Saya telah menguji ini untuk proyek saya.

  1. Eclispe Indigo
  2. "Help> Install New Software" Aktifkan / Instal plug-in Git resmi di "Eclipse Git Plugin .." dan instal semuanya.
  3. Aktifkan konektor Maven / EGit dengan petunjuk ini Bagaimana Anda membuat integrasi git bekerja dengan m2eclipse?
  4. Beralih ke perspektif Repositori Git. Klik kanan tempel url git proyek. Semua default harus berfungsi. Anda mungkin ingin mengubah folder instal yang diduga.
  5. Perluas repositori kloning dan klik kanan pada "Pohon Kerja" dan pilih "Impor Proyek Maven ...".
  6. Beralih ke perspektif Java. Klik kanan pada proyek dan pilih "Tim> Bagikan Proyek". Pilih "Git" dan pastikan untuk mencentang kotak "Gunakan atau buat repositori di folder induk proyek".
simbo1905
sumber
1
Ya, saya melakukan hal yang sama. Jangan mengerti, mengapa m2e-egit tidak melakukan langkah 6. secara otomatis.
xmedeko
6

Inilah solusi saya, ini adalah solusi untuk masalah ini:

  • Anda tidak dapat menginstal m2e-egit (Saya mendapatkan kesalahan di Juno)
  • Mengonversi proyek umum (terhubung ke repositori Git Anda) ke proyek Maven tidak berhasil untuk Anda (Langkah Impor Proyek Maven tampaknya penting)
  • Mengimpor Proyek Maven dari repositori Anda pada sistem file tidak menampilkan proyek yang terhubung ke Git.

  1. Siapkan repositori Git Anda dalam perspektif Git Repository Exploring .
    • Beralih ke perspektif Java, Import> Existing Maven Projects
    • Jelajahi checkout Git Anda di sistem file, pilih direktori yang berisi file pom.xml. Selesaikan impor; Anda akan melihat proyek-proyek ini tidak terhubung ke Git. :-(
    • Hapus proyek ini, tapi JANGAN HAPUS DARI FILESYSTEM . Kami tidak ingin klon kami dihapus; tugas ini juga meninggalkan file .project sehingga kita dapat mengimpor di langkah berikutnya.
  2. Kembali ke perspektif Git Repository Exploring .
    • Klik kanan repositori Anda, Impor Proyek ...
    • Pilih Impor proyek yang sudah ada
    • Di penjelajah di bawah ini, telusuri dan pilih direktori yang berisi pom.xml (dan file .project), lalu klik berikutnya.
    • Lanjutkan melalui wizard.
Arlo
sumber
Di Eclipse Luna, ini berfungsi setelah langkah 1.2 (proyek terhubung ke Git setelah impor pertama).
PJ_Finnegan
4

Impor tanpa memasang konektor tambahan untuk Mylyn:

  1. Buka Git Repositoriestampilan (Window-> Show view-> Git Repositories)
  2. Tekan Clone a Git Repositorytombol dan lanjutkan dengan semua langkah
  3. Dalam perluasan repositori yang baru dibuat Working Directory, klik kanan pada folder dengan proyek Anda dan pilih Import Projects. Lalu pilih Import existing projects, atau pilih Import as general project. Jika diperlukan setelah mengimpor, klik kanan pada proyek Anda dan pilih Configure-> Convert to Maven Project (dan Maven-> Update Project).
kolobok
sumber
3

Anda harus memperhatikan bahwa menempatkan metadata yang dihasilkan di bawah kontrol versi (biarlah git atau scm lainnya), bukanlah ide yang sangat baik jika ada lebih dari satu pengembang yang mengerjakan basis kode. Dua pengembang mungkin memiliki proyek atau penyiapan jalur kelas yang sama sekali berbeda. Sama seperti pemberitahuan jika Anda bermaksud membagikan kode pada suatu waktu ...

Peter Hägg
sumber
2

Saya memiliki proyek maven dengan tiga submodul yang dikelola di git. Saya mengaturnya dalam gerhana sebagai berikut:

  1. Saya mendaftarkan repositori git dengan eclipse menggunakan EGit
  2. Saya mengimpor proyek sebagai Proyek Maven yang sudah ada
  3. Untuk setiap proyek, saya memilih Tim | Bagikan Proyek .
Tom Norton
sumber
1

Saya lebih suka mengimpor proyek ke Eclipse sebagai mavenproyek daripada gitproyek. Dengan melakukan ini, konten proyek akan tetap dikenali sebagai konten git. Anda dapat terus melakukan operasi git dari Eclipse. Seperti yang telah Anda sebutkan, kebalikannya tidak benar.

Sifat proyek di Eclipse tidak didasarkan pada SCM yang memegang proyek, tetapi pada jenis proyek - apakah perang atau jar, dll. - yang ditentukan secara otomatis ketika proyek diimpor sebagai proyek maven.

Saya akan ragu untuk check-in ke metadata khusus SCM IDE. Melakukannya mengasumsikan banyak hal - semua developer menggunakan IDE atau versi IDE yang sama, mungkin versi JDK / JRE yang sama, sehingga mereka terus menggunakan versi yang sama sepanjang siklus hidup proyek dan seterusnya.

Raghuram
sumber
1

Tidak bisa Anda mengimpor sebagai proyek git dan kemudian (jika Anda telah dengan m2eclipse diinstal) klik kanan pada proyek di Package Explorer > Maven> Enable Dependency Management?

dimitrisli
sumber
1
Jika tidak terlihat dan Anda telah menginstal m2e, buka file .project dan tambahkan sendiri sifat maven2: <name> org.eclipse.m2e.core.maven2Builder </name>
dimitrisli
1

Setelah memeriksa cabang saya di Egit, saya beralih ke Java View, lalu menggunakan File -> Import, Git -> Projects from Git, lalu memilih direktori maven tingkat atas. Ini dengan Eclipse Kepler.

Randy
sumber
-3

Daripada terus-menerus membuat metadata proyek melalui perintah import-> maven, Anda dapat membuat metadata proyek Anda satu kali dan menempatkannya di repositori git Anda bersama dengan kode sumber lainnya. Setelah itu, menggunakan perintah import-> git akan mengimpor proyek yang mendukung maven, dengan asumsi Anda telah menginstal alat maven.

Pastikan untuk menempatkan ke dalam sistem kendali sumber semua file dalam direktori proyek yang dimulai dengan '.' seperti .classpath dan .project bersama dengan seluruh konten direktori .settings.

Konstantin Komissarchik
sumber