Java + jdb + maven in vim / emacs: come posso farlo?


Sono nuovo nel mondo Java. Nell'ultimo anno ho fatto lo sviluppo di C#/C/C++ in vim in linux e sono davvero cresciuto fino ad amarlo. Dotnet-cli è stato ottimo da usare e, sebbene non ci fosse alcun debugger c# in linux fino a quando non ne è stato incorporato uno in vscode di recente, la codifica e l'esecuzione in eclipse erano abbastanza facili.

Le domande che ho visto chiedere QUINDI come fare lo sviluppo java in vim/emacs si sono tutte rifiutate di affrontare rispondendo alla domanda {[5] } e invece si concentrano sul tentativo di convincere la persona a rinunciare e utilizzare un IDE. Beh, per ragioni che passano la comprensione, semplicemente non è un'opzione. Alcuni test funzionano in IntelliJ, alcuni in eclipse e alcuni I hanno bisogno di per scendere alla riga di comando.

Mi chiedo, ho sentito parlare di jdb come debugger da riga di comando. Stiamo usando maven come strumento di costruzione. Nonostante la documentazione chiara, devo ancora vedere come ottenere un test individuale da eseguire in maven usando -Dtest=TestClassName#testActualTestCase. Sembrerebbe che sia davvero l'unica cosa che mi trattiene. Utilizzando jdb sarebbe estremamente bello pure. Qualcuno sa come usare jdb con maven nella riga di comando? Un altro bello da avere sarebbe il completamento del codice per java in emacs o vim (non sono davvero schizzinoso... Userò entrambi in quanto sono entrambi fantastici, ma preferisco vim per l'editing giorno per giorno in quanto è DAVVERO leggero).

MODIFICA: no... Non voglio usare Eclim. In particolare ho bisogno solo di eseguire test, codice e modificare il testo. Niente di fantasia.

Author: Zach Folwick, 2016-05-20

2 answers

Sono passati anni da quando ho usato vim per lo sviluppo, quindi mi concentrerò sulla parte Emacs.

Attualmente ci sono quattro opzioni per lo sviluppo Java in Emacs: meghanada, jdee, ensime, eclim. Avevo almeno giocato con tutti loro. Purtroppo tutti hanno alcune stranezze e non posso davvero raccomandare nessuno di loro per uno sviluppo Java serio.

Tuttavia se vuoi provare con Emacs. Sento Meghanada darebbe il colpo migliore. Non lo è abbastanza maturo, ma supporta già il completamento automatico, il controllo della sintassi ed esegue i test junit. Analizzerà anche automaticamente i progetti maven e gradle. L'esperienza complessiva è abbastanza liscia per progetti di piccola e moderata scala. Il supporto per il refactoring è ancora nella sua lista delle cose da fare.

Jdee è solido ma un po ' obsoleto. Non comprende alcune caratteristiche moderne di java (annotazione per esempio). L'interfaccia di completamento è goffo. E la gente sostiene che sia difficile installare.

Ensime è la mia scelta per lo sviluppo di Scala. Ha un supporto limitato per java ma non sembra giocare bene con maven o gradle.

Per quanto riguarda il debug, realgud ha il supporto sperimentale per jdb e meghanada ha una funzione per connettersi ad esso. Anche se non l'ho mai fatto funzionare.

 1
Author: Jun Zhang, 2017-09-25 10:10:48

Dovresti dare un'occhiata a eclim. Ti consente di connetterti a eclipse tramite vim e usarlo per la creazione, il debug e il completamento del codice. Può anche eseguire test junit. È possibile eseguire un singolo test posizionando il cursore da qualche parte in un metodo di test ed eseguendo un comando vim. Non l'ho mai usato in combinazione con maven o jdb, ma la documentazione eclim o google group potrebbe essere in grado di aiutarti se decidi di seguire questa strada.

 0
Author: Danny, 2016-05-20 19:05:47