Bagaimana cara mengkonfigurasi jalur build Eclipse untuk menggunakan dependensi Maven?

124

Saya ingin memanfaatkan fitur yang disediakan Maven untuk mengelola dependensi dalam sebuah proyek. Pemahaman singkat saya tentang cara kerja Maven adalah ia akan memperoleh JAR yang dibutuhkan dan kemudian membangun proyek dengan perpustakaan ini.

Saat ini saya memiliki file POM sederhana yang disiapkan sebagai tes:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jamesgoodwin.test</groupId>
  <artifactId>com.jamesgoodwin.test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.0.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

Untuk mengelola dependensi, saya biasanya menambahkan proyek atau JAR ke jalur pembangunan dan kemudian saya dapat membangun proyek saya ..

Namun saat menggunakan M2Eclipse , dependensi tidak ditambahkan secara otomatis ke jalur build. Apakah ada konfigurasi untuk memberi tahu Eclipse bahwa Maven mengelola dependensi?

James Goodwin
sumber

Jawaban:

116

Jika Anda mengklik kanan pada proyek Anda, seharusnya ada opsi di bawah "maven" untuk "mengaktifkan manajemen ketergantungan". Itu dia.

Buhb
sumber
2
m2eclipse tidak melakukan ini secara default jika Anda mengimpor proyek yang dibuat dengan mvn eclipse: eclipse, jadi ini sepertinya selalu membuat orang tersandung.
matt b
28
Ini sebenarnya sudah diaktifkan untuk proyek saya. Mungkin karena saya memilih untuk menambahkan file POM ke proyek yang sudah ada? Namun melakukan Maven> Perbarui konfigurasi proyek tampaknya telah memperbaikinya untuk saya. Juga jawaban Anda yang akhirnya membuat saya menemukan toolbar di mana saya dapat memperbaiki proyek tersebut. Terima kasih banyak
James Goodwin
12
Bagaimana jika tidak ada opsi "Maven" di menu klik kanan, meskipun saya tampaknya telah menginstal m2eclipse?
dfrankow
85
Ah, "Configure" => "Convert to Maven Project" adalah temanmu!
dfrankow
2
@dfrankow bagaimana jika opsi "Configure" => "Convert to Maven Project" tidak ada ??
vasilakisfil
67

jika Anda mengeksekusi

mvn eclipse:clean

diikuti oleh

mvn eclipse:eclipse

jika akan menyiapkan .classpathfile gerhana untuk Anda. Artinya, perintah ini dijalankan terhadap maven dari baris perintah yaitu di luar gerhana.

davek
sumber
Perhatikan bahwa ini bekerja dengan menggunakan variabel classpath (M2_REPO) untuk merujuk ke dependensi Anda, itu tidak menggunakan m2eclipse dan saya tidak percaya itu mengambil dan dependensi yang Anda tambahkan saat Anda mengerjakan proyek - tetapi itu bagus untuk mendapatkan pengaturan awal terjadi
matt b
@matt b: Anda perlu mengulang mvn eclipse: eclipse setiap kali dependensi Anda berubah.
Buhb
Untuk menambah apa yang dikatakan Buhb, lakukan mnv eclipse: eclipse pada baris perintah dan segarkan proyek Eclipse setiap kali Anda menambahkan lebih banyak deps ke pom.xml.
Binil Thomas
5
Ini tidak diperlukan saat menggunakan plugin m2eclipse.
Pascal Thivent
3
Saya menggunakan plugin m2eclipse dan mengalami masalah setelah mengimpor proyek maven yang sudah ada ke dalam eclipse. Melakukan mvn eclipse:cleandan mvn eclipse:eclipsebenar - benar memperbaiki masalah saya.
aioobe
29

Saya berasumsi bahwa Anda menggunakan m2eclipse seperti yang Anda sebutkan. Namun tidak jelas apakah Anda membuat proyek Anda di bawah Eclipse atau tidak jadi saya akan mencoba untuk mencakup semua kasus.

  1. Jika Anda membuat proyek "Java" di bawah Eclipse (Ctrl + N> Proyek Java), klik kanan proyek dalam tampilan Package Explorer dan buka Maven> Aktifkan Manajemen Ketergantungan (tergantung pada struktur proyek awal, Anda mungkin harus memodifikasi agar cocok dengan maven, misalnya dengan menambahkan src/javake folder sumber pada jalur build).

  2. Jika Anda membuat "Maven Project" di bawah Eclipse (Ctrl + N> Maven Project), maka seharusnya sudah "siap Maven".

  3. Jika Anda membuat proyek Maven di luar Eclipse (secara manual atau dengan arketipe), maka cukup impor di Eclipse ( klik kanan tampilan Package Explorer dan pilih Import ...> Maven Projects ) dan itu akan menjadi "Maven siap".

Sekarang, untuk menambahkan dependensi, klik kanan proyek dan pilih Maven> Add Dependency ) atau edit pom secara manual.

PS: hindari menggunakan maven-eclipse-plugin jika Anda menggunakan m2eclipse. Sama sekali tidak perlu, itu akan membingungkan, itu akan menghasilkan kekacauan. Tidak, sungguh, jangan gunakan kecuali Anda benar-benar tahu apa yang Anda lakukan.

Pascal Thivent
sumber
2
Baru saja mengetahui bahwa maven-eclipse-plugin adalah penyebab kesalahan dependensi aneh saya yang belum terselesaikan. Terima kasih!
vaughan
1
Saya hanya menggunakan EclipseNeon yang diunduh dari situs resmi .. Tidak ada opsi Maven di menu setelah saya membuat proyek java standar. Apakah kita perlu menginstal sesuatu secara terpisah atau semuanya sudah diunduh dengan Neon?
Ewoks
@Pascal Thivent, saya telah mengimpor proyek Maven. Saya tidak dapat menemukan solusi untuk yang satu ini
Syed
19

Tambahkan ini ke file .classpath ..

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

Terima kasih

Apurva Singh
sumber
1
ya, saya perlu menambahkannya secara manual di mana-mana selama beberapa tahun terakhir .... mengapa mereka tidak menerapkan plugin eclipse untuk mengenali dependensi maven secara otomatis ??
pisau cukur
1
Terima kasih untuk solusi ini. Ini berhasil untuk saya. Saya tidak sengaja menghapus file .project dan .classpath. Solusi ini berhasil bagi saya untuk menambahkan dependensi maven di jalur kelas,
Tahir Mehmood
Pintasan untuk menghasilkan file .classpath di atas secara otomatis adalah Project -> Maven -> Perbarui Project Jika tidak cukup Alt + F5
Venkateswara Rao
Bekerja untuk saya juga. Memecahkan sebagian besar dependensi saya yang hilang tetapi masih memiliki beberapa masalah, jadi saya bertanya-tanya apakah solusi yang lebih ramah pengguna tidak berfungsi karena ada kesalahan kecil di suatu tempat (tetapi perilaku ini tidak membantu men-debug masalah ...)
xenoid
14

Klik kanan pada proyek Configure> convert to Maven project

Kemudian Anda dapat melihat semua Menu terkait Maven untuk proyek Anda.

DevJav
sumber
cara yang benar jika Anda tidak membuat proyek mvn sejak awal
Hannes Schneidermayer
10

Aku suka ini ..

Klik kanan pada proyek -> konfigurasi -> konversikan ke proyek maven. Klik kanan pada proyek -> maven -> tambahkan ketergantungan.

madhu_karnati
sumber
5

Di Eclipse (Mars) buka:

Properti Proyek -> Maven. Pastikan "Selesaikan dependensi dari proyek ruang kerja" dinonaktifkan .

Thomas Beer
sumber
Ini tidak menyelesaikan masalah asli, namun ini MENYELESAIKAN masalah lain yang mengganggu yang telah saya alami selama berminggu-minggu - Setelah menonaktifkan opsi itu, proyek saya, yang hanya berjalan dari baris perintah maven, sekarang berjalan lagi di dalam gerhana! Terima kasih!
Bill Hileman
4

Saya tidak menemukan maven atau mengkonfigurasi menu tetapi menemukan tombol berikut yang memecahkan masalah saya:

masukkan deskripsi gambar di sini

borjab.dll
sumber
2

Ketika m2eclipse dipasang dengan benar, itu harus menambahkan ketergantungan secara otomatis. Namun, Anda harus membuat file proyek eclipse dengan memasukkan:

mvn eclipse:m2eclipse

atau, sebagai alternatif jika Anda tidak menggunakan m2eclipse:

mvn eclipse:eclipse
EJB
sumber
3
Perhatian: karena versi 2.8 maven-eclipse-plugin tidak lagi mendukung "eclipse: m2eclipse" (tidak dapat menemukan alasan / informasi mengapa)
Wolkenarchitekt
1

Saya memiliki sedikit variasi yang menyebabkan beberapa masalah - beberapa sub proyek dalam satu proyek. Dalam hal ini saya perlu masuk ke setiap folder individual yang berisi POM, menjalankan perintah mvn eclipse: eclipse dan kemudian secara manual menyalin / menggabungkan entri classpath ke dalam file classpath proyek saya.

Mearde
sumber
1

Untuk versi Eclipse yang lebih baru (> = Mars), klik kanan pada proyek> konfigurasi> konversikan ke proyek Maven

JBoy
sumber
1

Menambahkan jawaban saya karena beberapa alasan:

  • Entah bagaimana tidak ada jawaban yang tercantum secara langsung menyelesaikan masalah saya.
  • Saya tidak dapat menemukan "Aktifkan pengelolaan ketergantungan" di bawah Maven. Saya menggunakan Eclipse 4.4.2 yang dibangun pada Rabu, 4 Feb 2015.

Apa yang membantu saya adalah pilihan lain di bawah Maven yang disebut sebagai "Perbarui Proyek" dan kemudian ketika saya mengkliknya, jendela ini terbuka yang memiliki kotak centang yang bertuliskan "Paksa pembaruan Snapshot / Rilis". Tujuan sebenarnya dari kotak centang ini berbeda, saya tahu tetapi entah bagaimana itu menyelesaikan masalah ketergantungan. masukkan deskripsi gambar di sini

Saurabh Patil
sumber
1

Tak satu pun dari itu menyelesaikan masalah saya. tetapi yang saya lakukan adalah jika mengklik pom.xml, ada tab di bagian bawah bernama dependencies. di tab ini dibagi menjadi 2 bagian, satu disebut dependensi dan satu lagi disebut manajemen dependensi. pilih setiap hal di bagian dependensi dan klik add untuk berada di bawah kontrol manajemen dependensi. tutup dan buka kembali proyek Anda.

amralieg.dll
sumber
0

Mungkin Anda bisa melihat maven-eclipse-plugin sebagai ganti M2Eclipse.

Di sana Anda pada dasarnya menambahkan konfigurasi maven-eclipse-plugin ke pom.xml Anda dan kemudian mengeksekusi mvn eclipse:eclipseyang akan menghasilkan file .projectdan yang diperlukan .classpathuntuk Eclipse. Kemudian Anda akan memiliki jalur build yang benar di Eclipse.

Juha Syrjälä
sumber
eclipse: eclipse is bad, menambahkan semua perpustakaan, satu per satu, ke dependensi Anda alih-alih mengandalkan Maven
razor
0

Pastikan POM Anda mengikuti konvensi penamaan, dan diberi nama dalam huruf kecil sebagai pom.xmldan BUKAN POM.xml.

Dalam kasus saya semuanya baik-baik saja, tetapi Eclipse masih mengeluh ketika mencoba Klik kanan dan Update project configuration- memberi tahu saya bahwa POM tidak dapat dibaca. Mengubah nama menjadi huruf kecil - pom.xmldari POM.xml- dan berhasil.

Karun
sumber
0

Saya bertemu masalah ini juga. Ketika saya menambahkan dependensi di pom.xml, saya memeriksa di folder lokal /Users/xyz/.m2/dan toples sudah diunduh di sana, tetapi tidak dapat menambahkan buildpath dari gerhana.

Versi gerhana saya: Mars.2 Rilis (4.5.2)

proyek klik kanan > Maven > Aktifkan Resolusi Ruang Kerja

Dan ini menyelesaikan masalah saya.

Eddy
sumber
0

Biasanya, Anda dapat menyalin file .classpath dari proyek yang berfungsi karena tidak ada proyek yang spesifik di sini dengan asumsi Anda terstruktur sebagai proyek Maven standar.

Puneet Lamba
sumber
0

Ini berhasil untuk saya di Eclipse Oxygen (4.7.0):

Klik kanan Project -> Maven -> Pilih Maven Profiles ... lalu centang kotak Repository Proxy, tekan OK.

r590
sumber