#+TITLE: Java layer [[file:img/java.png]] * Table of Contents :TOC_4_gh:noexport: - [[#description][Description]] - [[#layer-installation][Layer Installation]] - [[#layer][Layer]] - [[#eclim][Eclim]] - [[#installation][Installation]] - [[#usage][Usage]] - [[#key-bindings][Key bindings]] - [[#java-mode][Java-mode]] - [[#project-management][Project management]] - [[#eclimd][Eclimd]] - [[#maven][Maven]] - [[#goto][Goto]] - [[#refactoring][Refactoring]] - [[#documentation-find][Documentation, Find]] - [[#problems][Problems]] - [[#tests][Tests]] - [[#problems-buffer][Problems buffer]] - [[#projects-buffer][Projects buffer]] * Description This layer adds support for the Java language using the [[http://eclim.org][Eclim]] client/server. * Layer Installation ** Layer To use this configuration layer, add it to your =~/.spacemacs=. You will need to add =java= to the existing =dotspacemacs-configuration-layers= list in this file. ** Eclim Eclim provides the ability to access Eclipse features such as code completion, searching, code validation, and many more. *** Installation For installation check the [[http://eclim.org/install.html#download][official page]]. Then set the =Eclipse= and =Eclim= paths in =dotspacemacs/user-config=, for instance: #+BEGIN_SRC elisp (setq eclim-eclipse-dirs '("~/opt/eclipse") eclim-executable "~/opt/eclipse/eclim") #+END_SRC You can also configure other options, as shown below: #+BEGIN_SRC elisp (setq ;; Use another eclimd executable eclimd-executable "/path/to/another/executable" ;; Specify the workspace to use by default eclimd-default-workspace "/path/to/default/eclipse/workspace" ;; Whether or not to block emacs until eclimd is ready eclimd-wait-for-process t) #+END_SRC *** Usage Start the eclim daemon with ~SPC m d s~ and stop it with ~SPC m d k~. (See below.) * Key bindings ** Java-mode *** Project management | Key Binding | Description | |-------------+--------------------------------| | ~SPC m p b~ | Build project | | ~SPC m p c~ | Create project | | ~SPC m p d~ | Delete project | | ~SPC m p g~ | Open file in current project | | ~SPC m p i~ | Import project | | ~SPC m p j~ | Information about project | | ~SPC m p k~ | Close project | | ~SPC m p o~ | Open project | | ~SPC m p p~ | Open project management buffer | | ~SPC m p u~ | Update project | *** Eclimd | Key Binding | Description | |-------------+--------------| | ~SPC m d s~ | Start daemon | | ~SPC m d k~ | Stop daemon | *** Maven | Key Binding | Description | |-------------+--------------------------------| | ~SPC m m i~ | Run maven clean install | | ~SPC m m I~ | Run maven install | | ~SPC m m p~ | Run one already goal from list | | ~SPC m m r~ | Run maven goals | | ~SPC m m R~ | Run one maven goal | | ~SPC m m t~ | Run maven test | *** Goto | Key Binding | Description | |-------------+---------------------------------------------| | ~M-​,​~ | jump back from go to declaration/definition | | ~SPC m g g~ | go to declaration | | ~SPC m g t~ | go to type definition | *** Refactoring | Key Binding | Description | |-------------+------------------| | ~SPC m r i~ | optimize imports | | ~SPC m r f~ | Format file | | ~SPC m r r~ | Rename symbol | *** Documentation, Find | Key Binding | Description | |-------------+----------------------------------------| | ~SPC m f f~ | general find in project | | ~SPC m h h~ | show documentation for symbol at point | | ~SPC m h u~ | show usages for symbol at point | *** Problems | Key Binding | Description | |-------------+--------------------------------------------| | ~SPC m e a~ | set all problems for next/prev action | | ~SPC m e b~ | open buffer with problems | | ~SPC m e c~ | show options with problem corrections | | ~SPC m e e~ | set only errors for next/prev action | | ~SPC m e f~ | set only current file for next/prev action | | ~SPC m e n~ | go to next problem | | ~SPC m e o~ | open buffer with problems | | ~SPC m e p~ | go to previous problem | | ~SPC m e w~ | set warnings for next/prev action | *** Tests | Key Binding | Description | |-------------+---------------------------------------------------------------| | ~SPC m t t~ | run JUnit tests for current method or current file or project | ** Problems buffer | Key Binding | Description | |-------------+-------------------------------------| | ~RET~ | go to problem place | | ~a~ | show all problems | | ~e~ | show only errors | | ~f~ | show problems only for current file | | ~g~ | refresh problems | | ~q~ | quit | | ~w~ | show only warnings | ** Projects buffer | Key Binding | Description | |-------------+--------------------------------------------| | ~RET~ | go to current project | | ~c~ | go to problem place | | ~D~ | delete project | | ~g~ | refresh buffer | | ~i~ | info about current project | | ~I~ | import existing project into the workspace | | ~m~ | mark current project | | ~M~ | mark all projects | | ~N~ | create new project | | ~o~ | open project | | ~p~ | update project | | ~q~ | quit | | ~R~ | rename current project | | ~u~ | unmark current project | | ~U~ | unmark all projects |