Untuk proyek di tempat kerja, kami mempertimbangkan untuk menggunakan plugin Maven untuk Eclipse untuk mengotomatiskan build kami. Saat ini prosedurnya jauh lebih rumit dari yang seharusnya, dan kami berharap bahwa Maven akan menyederhanakan hal-hal menjadi membangun satu klik.
Pertanyaan saya adalah, apakah ada penyihir atau importir otomatis untuk mengonversi proyek Eclipse Java yang sudah ada menjadi proyek Maven, menggunakan plugin Maven? Atau haruskah saya membuat proyek Maven baru dan secara manual menyalin semua file sumber, lib, dll.
Jawaban:
Jika Anda hanya ingin membuat POM default dan mengaktifkan fitur m2eclipse: jadi saya anggap Anda saat ini tidak memiliki setup build otomatis alternatif yang Anda coba impor, dan saya berasumsi Anda sedang berbicara tentang plugin m2eclipse.
Plugin m2eclipse menyediakan opsi klik kanan pada suatu proyek untuk menambahkan pom.xml default ini:
Versi M2E yang lebih baru
Klik kanan pada Project -> submenu Configure -> Convert to Maven Project
Versi M2E yang lebih lama
Klik kanan pada Project -> submenu Maven -> Enable Dependency Management.
Itu akan melakukan yang diperlukan untuk mengaktifkan plugin untuk proyek itu.
Untuk menjawab ' adakah pengimpor atau penyihir otomatis? ': tidak yang saya tahu. Menggunakan opsi di atas akan memungkinkan Anda untuk mengaktifkan plugin m2eclipse untuk proyek Anda yang sudah ada menghindari penyalinan manual. Anda masih harus benar-benar mengatur dependensi dan hal-hal lain yang perlu Anda bangun sendiri.
sumber
Mulai dari m2e 0.13.0 (jika tidak lebih awal dari), Anda dapat mengonversi proyek Java ke proyek Maven dari menu konteks. Begini caranya:
Berikut adalah langkah - langkah terperinci dengan tangkapan layar.
sumber
Saya mengalami masalah yang sama dan ingin seluruh ruang kerja gerhana Mavenise berisi sekitar 60 proyek Eclipse. Melakukannya secara manual membutuhkan banyak waktu dan opsi alternatif tidak memungkinkan. Untuk mengatasi masalah ini saya akhirnya membuat proyek yang disebut eclipse-to-maven di github. Karena gerhana tidak memiliki semua informasi yang diperlukan tentang dependensi, ia melakukan yang berikut:
Berdasarkan
<classpathentry/>
elemen XML dalam file .classpath, ia menciptakan dependensi pada proyek lain, mengidentifikasi file jar perpustakaan dan berdasarkan namanya (misalnya jakarta-oro-2.0.8.jar) mengidentifikasi versinya. Saat iniartifactId
dangroupId
sama seperti saya tidak dapat menemukan sesuatu yang dapat mengembalikan saya ke grup Maven berdasarkan ketergantunganartifactId
. Meskipun ini bukan solusi yang sempurna, ini memberikan landasan yang baik untuk mempercepat Mavenisation.Ini memindahkan semua folder sumber sesuai dengan konvensi Maven (seperti
src/main/java
)Karena proyek Eclipse yang memiliki nama dengan spasi sulit untuk ditangani di lingkungan Linux / Unix, ia mengubah nama mereka juga dengan nama tanpa spasi.
File pom.xml yang dihasilkan berisi dependensi dan struktur pom dasar. Anda harus menambahkan plugin Maven yang diperlukan secara manual.
sumber
.classpath
dan.project
file)? Bisakah Anda menambahkan jawaban Anda bagaimana menggunakan plugin Anda untuk memotong proyek JavaSE sederhana - dan apa perubahan aktual dalam struktur direktori?Klik kanan pada nama Project> Configure> Convert to Maven Project> klik finish. Di sini Anda akan menambahkan beberapa dependensi untuk mengunduh dan menambahkan file jar yang Anda harapkan.
Ini akan membuat file pom.xml yang dibuat secara otomatis. Buka file itu dalam format xml di editor gerhana Anda. Setelah membangun tag (
</build>
) tambahkan dependensi Anda yang dapat Anda salin dari situs web maven dan tambahkan di sana. Sekarang kamu baik untuk pergi. Ketergantungan ini secara otomatis akan menambahkan file jar yang Anda butuhkan.sumber
Jawaban Chengdong benar, Anda harus menggunakan
Configure>Convert to Maven Project
. Namun, saya harus menambahkan proses konversi telah sangat ditingkatkan sejak m2e 0.13.0: m2e 1.1+ dan m2e-wtp 0.16.0+ sekarang dapat mengubah pengaturan gerhana yang ada menjadi konfigurasi plugin pakar .Mengenai masalah konversi ketergantungan, Anda dapat mencoba fitur integrasi JBoss Tools (JBT) 4.0 Maven, yang berisi panduan konversi eksperimental, yang dicolokkan ke proses konversi m2e: http://docs.jboss.org/tools/whatsnew/maven/ maven-news-4.0.0.Beta1.html .
Itu tidak berpura-pura menjadi solusi utama (tidak ada yang bisa), baik itu harus sangat membantu bootstrap proses konversi Maven Anda.
Juga, FYI, berikut adalah beberapa ide untuk meningkatkan proses konversi m2e , refactoring untuk menggunakan tata letak Maven kemungkinan besar akan diimplementasikan di masa depan.
JBT 4.0 (memerlukan Eclipse JavaEE Juno) dapat diinstal dari http://download.jboss.org/jbosstools/updates/stable/juno/ atau dari Eclipse Marketplace
sumber
Itu perlu karena, lebih atau kurang, ketika kita mengimpor proyek dari git, itu bukan proyek pakar, sehingga ketergantungan pakar tidak berada di jalur pembangunan.
Inilah yang telah saya lakukan untuk mengubah proyek umum menjadi proyek pakar.
proyek umum -> proyek java klik kanan proyek, properti-> segi proyek, klik "java". Langkah ini akan mengubah proyek umum menjadi proyek java.
proyek java -> proyek maven proyek klik kanan, konfigurasikan -> konversikan ke proyek maven Pada saat ini, maven dependensi lib masih belum dalam jalur pembangunan. properti proyek, membangun jalur, tambahkan perpustakaan, tambahkan maven dependensi lib
Dan tunggu beberapa detik, ketika dependensi dimuat, proyek siap!
sumber
Ada program baris perintah untuk mengubah proyek Java apa pun menjadi proyek SBT / Maven.
Ini menyelesaikan semua botol dan mencoba mencari tahu versi yang benar berdasarkan SHA checksum, classpath atau nama file. Kemudian ia mencoba untuk mengkompilasi sumber sampai menemukan konfigurasi yang berfungsi. Tugas khusus untuk dieksekusi per konfigurasi dependensi juga dapat diberikan.
https://bitbucket.org/mnyx/universalresolver
sumber
Sejauh yang saya tahu, tidak ada yang secara otomatis akan mengubah proyek Eclipse menjadi proyek Maven (yaitu memodifikasi tata letak, membuat POM, "menghasilkan" dan memberi makan dengan metadata, mendeteksi perpustakaan dan versi mereka untuk menambahkannya ke POM , dll). Eclipse tidak memiliki cukup metadata untuk memungkinkan hal ini (inilah tepatnya poin POM) dan / atau untuk menghasilkan hasil yang layak.
Itu akan menjadi pilihan terbaik menurut saya. Buat proyek Maven, salin / pindahkan sumber, sumber daya, tes, sumber daya uji ke direktori masing-masing, nyatakan dependensi, dll.
sumber
Untuk mengonversi ke Gradle adalah analog dengan Maven:
Klik kanan pada Project -> submenu Configure -> Convert to Gradle (STS) Project
sumber