Idoneità di Emacs come IDE di sviluppo Java


22

Sto facendo ancora un altro tentativo di convertirmi in Emacs. Sono un discreto utente Vi ma ho usato Eclipse per la maggior parte del mio lavoro di sviluppo negli ultimi 10+ anni (è passato così tanto tempo).

Quindi ho letto un po 'e ho pensato che JDEE fosse la strada da percorrere: averlo configurato ma avere ancora alcune domande di base.

Ma, dopo aver fatto qualche ricerca in più, sembra che JDEE potrebbe non essere ben mantenuto e forse tutto ciò di cui ho bisogno è CEDET?

Quindi domanda:

  1. Emacs può essere utilizzato come sostituto di Eclipse? Organizzo la mia build usando Maven?
  2. Se "1" è sì, quale suite di strumenti dovrei iniziare con: CEDET? JDEE?

Grazie.


4
Emacs è un ottimo editor, ma non un ottimo IDE Java. Rimarrete delusi.
Thorbjørn Ravn Andersen,

Risposte:


20

Sarò conservatore e dirò di no , Emacs non è un sostituto per Eclipse (soprattutto non pronto all'uso). Tuttavia, ciò non significa che non sia adatto allo sviluppo Java.

Dato che conosci già Eclipse, ti suggerisco di dare un'occhiata a eclim:

Eclim offre la possibilità di accedere alle funzioni di modifica del codice Eclipse (completamento del codice, ricerca, convalida del codice e molte altre ) tramite la riga di comando o una connessione di rete locale, consentendo l'integrazione di tali funzionalità con il tuo editor preferito.

Eclim supporta Maven . Si integra con Emacs tramite un pacchetto chiamato emacs-eclim. Seguire i passaggi indicati nel emacs-eclim README per installarlo 1 :

  1. Scarica e installa eclim.

  2. Installa emacs-eclim:

    • Se non lo hai già fatto, aggiungi MELPA a package-archives:

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

    • Valuta il codice sopra (premendo C-x C-econ il punto posizionato dopo l'ultima chiusura) o riavvia Emacs.

    • Installa emacs-eclimfacendo M-x package-install RET emacs-eclim RET.
  3. Aggiungi il seguente codice al tuo file init:

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

1 Istruzioni modificate per includere un solo metodo di installazione.


1
molte grazie per la risposta - ho familiarità con eclim, tuttavia sto cercando di allontanarmi dall'eclissi a causa del suo gonfiamento - anche se apprezzo che questo sia un buon passo di transizione.
user1172468

1
Quindi domanda: dire se eclim non esistesse, quale sarebbe la tua raccomandazione?
user1172468

Allora impara a vivere senza refactoring.
Wasamasa,

2
@ user1172468 Dipende - Quali tipi di funzionalità vuoi? Un sostituto completo per Eclipse conterrà inevitabilmente un po 'gonfio. Se vuoi evitarlo, la soluzione migliore è quella di elaborare un elenco di casi d'uso specifici e verificare se (a) Emacs li supporta immediatamente e / o (b) esiste un pacchetto aggiuntivo che fornisce funzionalità pertinente. Possiamo aiutarti in questo, ma solo se ci fai conoscere le tue funzionalità
indispensabili

1
Va notato che con Eclim è possibile eseguire Eclipse senza la GUI, che utilizzerà meno risorse. Un'altra cosa di Eclim è che il suo completamento automatico non è utilizzabile (deve salvare il buffer prima di richiedere il completamento + blocca l'editor in attesa di risposta).
wvxvw,

11

Emacs / eclim è stato il mio IDE Java principale negli ultimi due anni e direi che funziona bene, anche con basi di codice di grandi dimensioni (il mio attuale spazio di lavoro emacs / eclim ha più di 4000 file Java). È vero che emacs-eclim richiede il salvataggio del file prima di effettuare la chiamata eclimd, ma non è un grosso problema dell'IMO. L'esperienza di modifica è ancora buona e il debugger (usando gud) è ok.

Se rinvii tutte le soluzioni basate su Eclipse, consiglierei la modalità Malabar . L'ho usato anche per un paio d'anni (prima di passare a emacs-eclim) e ha alcune belle caratteristiche, la parte superiore è che funziona immediatamente con qualsiasi progetto Maven. Se usi Maven, malabar-modeti darà immediatamente il completamento automatico e la navigazione del codice (tra le altre cose). Con Malabar, ho usato jdibug per il debug di processi Java remoti.

Anche il più vecchio pacchetto Java per Emacs, JDEE , potrebbe valere la pena di essere verificato. Qui troverai molte funzionalità IDE implementate in puro elisp (o programmi di accompagnamento Java lanciati tramite bsh), ma l'ultima volta che l'ho usato, era piuttosto datato. Potrei sbagliarmi, ma l'ultima volta che ho verificato, JDEE era più adatto per Java <= 1.4 e il debugger che funzionava meglio con esso era jdb(gli altri erano troppo lenti).

Infine, indipendentemente dal pacchetto Java scelto, aggiungerei anche Projectile per un sacco di bontà relative al progetto.


8

A questo punto (2018), LSP Java ( https://github.com/emacs-lsp/lsp-java ) è abbastanza buono. Alcune delle caratteristiche:

  1. Completamento automatico
  2. Refactoring (metodo di estrazione, rinomina, implementa interfaccia, estrae locale, estrae costante e così via).
  3. Importazione automatica
  4. Navigazione del codice mentre si lavora su più progetti
  5. Trova riferimenti, implementazioni, tipo aperto.
  6. Importazione del progetto Maven / Gradle, generazione automatica, aggiornamento automatico della configurazione del progetto
  7. Facile da configurare
  8. Preferenza del formatter
  9. Supporto Flycheck + soluzioni rapide come "Aggiungi cast", "Surround with try / catch", ecc.

Il principale punto di forza è che ci sono sviluppatori a tempo pieno che lavorano sul backend Java LSP https://github.com/eclipse/eclipse.jdt.ls che porta nuove funzionalità quasi ogni settimana.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.