Kesesuaian Emacs sebagai IDE pengembangan Java

22

Saya sedang membuat upaya lain untuk mengonversi ke Emacs. Saya pengguna Vi yang layak tetapi telah menggunakan Eclipse untuk sebagian besar pekerjaan pengembangan saya selama 10+ tahun terakhir (sudah selama itu).

Jadi saya melakukan beberapa pembacaan dan berpikir bahwa JDEE adalah cara untuk pergi - mengkonfigurasinya tetapi masih memiliki beberapa pertanyaan dasar.

Tapi, setelah melakukan penelitian lebih lanjut - sepertinya JDEE mungkin tidak terpelihara dengan baik dan mungkin yang saya butuhkan adalah CEDET?

Jadi pertanyaan:

  1. Bisakah Emacs berfungsi sebagai pengganti Eclipse saya? Saya mengatur bangunan saya menggunakan Maven?
  2. Jika "1" adalah ya, seperangkat alat apa yang harus saya mulai dengan: CEDET? JDEE?

Terima kasih.

pengguna1172468
sumber
4
Emacs adalah editor yang hebat, tetapi bukan Java IDE yang hebat. Anda akan kecewa.
Thorbjørn Ravn Andersen

Jawaban:

20

Saya akan menjadi konservatif dan berkata tidak , Emacs bukan pengganti drop-in untuk Eclipse (terutama tidak di luar kotak). Namun, itu tidak berarti bahwa itu tidak cocok untuk pengembangan Java.

Karena Anda sudah terbiasa dengan Eclipse, saya sarankan Anda melihat eclim:

Eclim menyediakan kemampuan untuk mengakses fitur pengeditan kode Eclipse (penyelesaian kode, pencarian, validasi kode, dan banyak lagi ) melalui baris perintah atau koneksi jaringan lokal, yang memungkinkan fitur-fitur itu diintegrasikan dengan editor favorit Anda.

Eclim mendukung Maven . Terintegrasi dengan Emacs melalui paket yang disebut emacs-eclim. Ikuti langkah-langkah yang dijelaskan dalam emacs-eclim README untuk menginstalnya 1 :

  1. Unduh dan instal eclim.

  2. Pasang emacs-eclim:

    • Jika Anda belum melakukannya, tambahkan MELPA ke package-archives:

      (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)

    • Evaluasi kode di atas (dengan menekan C-x C-edengan posisi yang diposisikan setelah paren penutupan terakhir) atau restart Emacs.

    • Instal emacs-eclimdengan melakukan M-x package-install RET emacs-eclim RET.
  3. Tambahkan kode berikut ke file init Anda:

(require 'eclim)
(global-eclim-mode)

1 Instruksi dimodifikasi untuk menyertakan hanya satu metode instalasi.

itu hanya
sumber
1
semoga banyak terima kasih atas jawabannya - Saya akrab dengan eclim, namun saya mencoba untuk menjauh dari gerhana karena itu kembung - meskipun saya sangat menghargai bahwa ini adalah langkah transisi yang baik.
user1172468
1
Jadi pertanyaan: katakanlah jika eclim tidak ada, apa rekomendasi Anda?
user1172468
Belajarlah hidup tanpa refactoring.
wasamasa
2
@ user1172468 Tergantung - jenis fitur apa yang Anda inginkan? Penggantian penuh untuk Eclipse pasti akan mengandung beberapa mengasapi. Jika Anda ingin lolos dari itu, taruhan terbaik Anda adalah membuat daftar kasus penggunaan khusus dan memeriksa apakah (a) Emacs mendukungnya di luar kotak dan / atau (b) ada paket tambahan yang menyediakan fungsi yang relevan. Kami dapat membantu Anda dengan itu, tetapi hanya jika Anda memberi kami fitur must-have :)
itsjeyd
1
Perlu dicatat bahwa dengan Eclim Anda dapat menjalankan Eclipse tanpa hal-hal GUI, yang akan menggunakan lebih sedikit sumber daya. Hal lain tentang Eclim adalah pelengkapan otomatisnya tidak dapat digunakan (harus menyimpan buffer sebelum meminta penyelesaian + itu mengunci editor sambil menunggu respons).
wvxvw
11

Emacs / eclim telah menjadi IDE Java utama saya selama beberapa tahun terakhir dan akan mengatakan itu berfungsi dengan baik, bahkan dengan basis kode yang besar (ruang kerja emacs / eclim saya saat ini memiliki lebih dari 4000 file Java). Memang benar bahwa emacs-eclim membutuhkan file untuk disimpan sebelum melakukan panggilannya eclimd, tapi itu bukan masalah besar IMO. Pengalaman mengedit masih bagus dan debugger (menggunakan gud) ok.

Jika Anda membenci semua solusi berdasarkan Eclipse, saya akan merekomendasikan mode Malabar . Saya telah menggunakan itu selama beberapa tahun juga (sebelum saya beralih ke emacs-eclim) dan memiliki beberapa fitur yang bagus, di atas itu ia bekerja di luar kotak dengan proyek Maven. Jika Anda menggunakan Maven, secara otomatis malabar-modeakan memberi Anda penyelesaian otomatis dan navigasi kode (antara lain). Dengan malabar, saya menggunakan jdibug untuk debugging proses Java jarak jauh.

Paket Java tertua untuk Emacs, JDEE , mungkin juga layak untuk dicoba. Di sini, Anda akan menemukan banyak fitur IDE diimplementasikan di elisp murni (atau program Java yang menyertai diluncurkan melalui bsh), tetapi terakhir kali saya menggunakannya, itu cukup tanggal. Saya mungkin salah, tetapi terakhir kali saya memeriksa, JDEE paling cocok untuk Java <= 1.4 dan debugger yang paling cocok dengannya jdb(yang lain terlalu lambat).

Terakhir, terlepas dari paket Java mana yang Anda pilih, saya juga akan memberikan Projectile untuk banyak kebaikan terkait proyek.

skybert
sumber
8

Pada titik ini (2018), LSP Java ( https://github.com/emacs-lsp/lsp-java ) cukup bagus. Beberapa fitur:

  1. Pelengkapan otomatis
  2. Refactoring (metode ekstrak, ganti nama, antarmuka implementasi, ekstrak lokal, ekstrak konstan dan sebagainya.)
  3. Impor otomatis
  4. Navigasi kode saat bekerja pada banyak proyek
  5. Temukan referensi, implementasi, tipe terbuka.
  6. Impor proyek Maven / Gradle, pembuatan otomatis, pembaruan konfigurasi proyek otomatis
  7. Mudah diatur
  8. Preferensi Formatter
  9. Dukungan Flycheck + perbaikan cepat seperti "Add cast", "Surround with try / catch", dll.

Titik penjualan utama adalah bahwa ada pengembang penuh waktu yang bekerja pada backend Java LSP https://github.com/eclipse/eclipse.jdt.ls yang memunculkan fitur baru hampir setiap minggu.

Ivan Dimitrov Yonchovski
sumber