Le développement Java utilise des IDE locaux tels que IntelliJ IDEA et Eclipse pour Windows et macOS, mais je pense que de nombreuses personnes utilisent les éditeurs Vim et Emacs pour le développement de langage de script tels que Node.js et Python. Avec Eclim, Java peut également être développé à partir de l'éditeur. Si vous créez un environnement de développement sur une machine virtuelle dans le cloud, vous pouvez effectuer le même développement à tout moment par connexion SSH à partir du terminal sans dépendre des paramètres locaux.
Préparez une machine virtuelle dans le cloud. Cette fois, nous allons construire un environnement de développement Java sur Ubuntu 16.04 LTS (Xenial Xerus).
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
Mettez à jour le package.
$ sudo apt-get update && sudo apt-get dist-upgrade -y
Java
Installez le SDK Java 8. Il n'est pas nécessaire que ce soit OpenJDK.
$ sudo apt-get install openjdk-8-jdk -y
$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
Eclipse Oxygen
Eclim se connecte à Eclipse et vous permet d'utiliser certaines fonctionnalités d'Eclipse depuis l'éditeur. Téléchargez Eclipse Oxygen (4.7) sorti en juin 2017.
$ wget http://ftp.yz.yamagata-u.ac.jp/pub/eclipse/technology/epp/downloads/release/oxygen/R/eclipse-java-oxygen-R-linux-gtk-x86_64.tar.gz
$ tar zxvf eclipse-java-oxygen-R-linux-gtk-x86_64.tar.gz
$ sudo mv eclipse /opt/
Emacs
Installez Emacs24.
$ sudo apt-get install emacs24-nox emacs24-el -y
$ emacs --version
GNU Emacs 24.5.1
Cask
C'est Cask pour la gestion des paquets Emacs. Git et Python sont requis pour l'installation.
$ sudo apt-get install git python -y
$ curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python
$ echo 'export PATH="$HOME/.cask/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc
Préparez le fichier de configuration suivant dans le répertoire ~ / .emacs.d
.
$ tree ~/.emacs.d
.emacs.d.bak/
├── Cask
├── init.el
└── inits
├── 00-keybindings.el
├── 01-menu.el
├── 02-files.el
└── 08-eclim.el
ʻInit.elutilise [init-loader](https://github.com/emacs-jp/init-loader) pour diviser le fichier. Veuillez utiliser autre que
~ / .emacs.d / inits / 08-eclim.el` comme vous le souhaitez.
~/.emacs.d/init.el
(require 'cask "~/.cask/cask.el")
(cask-initialize)
(require 'init-loader)
(setq init-loader-show-log-after-init nil)
(init-loader-load "~/.emacs.d/inits")
Décrit le package à installer dans Cask. Eclim et company-emacs-eclim pour le développement Java /company-emacs-eclim.el) est installé.
el:~/.emacs.d/Cask
(source gnu)
(source melpa)
(depends-on "cask")
(depends-on "init-loader")
;; java
(depends-on "eclim")
(depends-on "company-emacs-eclim")
Les paramètres Eclim suivent README. Utilisez company-mode pour les boîtes de dialogue contextuelles et la complétion de code.
~/.emacs.d/inits/08-eclim.el
(require 'eclim)
;; enable eclim-mode globally
(setq eclimd-autostart t)
(global-eclim-mode)
;; Eclipse installation
(custom-set-variables
'(eclim-eclipse-dirs '("/opt/eclipse/eclipse"))
'(eclim-executable "/opt/eclipse/eclim"))
;; Displaying compilation error messages in the echo area
(setq help-at-pt-display-when-idle t)
(setq help-at-pt-timer-delay 0.1)
(help-at-pt-set-timer)
;; Configuring company-mode
(require 'company)
(require 'company-emacs-eclim)
(company-emacs-eclim-setup)
(global-company-mode t)
Les éléments suivants ne sont pas obligatoires, mais sont des paramètres couramment utilisés dans Emacs. Modifiez la liaison de la touche de retour arrière avec C-h
.
~/.emacs.d/inits/00-keybindings.el
(define-key global-map "\C-h" 'delete-backward-char)
(define-key global-map "\M-?" 'help-for-help)
Cachez le menu Emacs.
~/.emacs.d/inits/01-menu.el
(menu-bar-mode 0)
Supprimez les blancs à la fin des lignes, ne faites pas de sauvegardes, de paramètres d'onglet, etc.
~/.emacs.d/inits/02-files.el
(when (boundp 'show-trailing-whitespace)
(setq-default show-trailing-whitespace t))
(add-hook 'before-save-hook 'delete-trailing-whitespace)
(setq backup-inhibited t)
(setq next-line-add-newlines nil)
(setq-default tab-width 4 indent-tabs-mode nil)
(setq default-major-mode 'text-mode)
Enfin, exécutez la commande cask
pour installer le paquet.
$ cd ~/.emacs.d
$ cask install
Eclim
Tampon de trame virtuel Xvfb pour une utilisation sans tête d'Eclipse, qui nécessite un serveur X, comme décrit dans Installation sur un serveur sans tête Installez (: //www.x.org/releases/X11R7.7/doc/man/man1/Xvfb.1.xhtml).
$ sudo apt-get install xvfb build-essential -y
Accédez au répertoire Eclipse et installez Eclim.
$ cd /opt/eclipse
$ wget https://github.com/ervandew/eclim/releases/download/2.7.0/eclim_2.7.0.jar
$ java -Dvim.files=$HOME/.vim -Declipse.home="/opt/eclipse" -jar eclim_2.7.0.jar install
Démarrez Xvfb et eclimd.
$ Xvfb :1 -screen 0 1024x768x24 &
$ DISPLAY=:1 /opt/eclipse/eclimd -b
Créez un exemple de projet à partir de l'archétype de maven-archetype-quickstart et vérifiez le fonctionnement d'Eclim. Tout d'abord, installez Maven depuis SDKMAN!.
$ curl -s get.sdkman.io | /bin/bash
$ source ~/.sdkman/bin/sdkman-init.sh
$ sdk install maven
...
Setting maven 3.5.0 as default.
Exécutez mvn archetype: generate
dans un répertoire de votre choix. Le fichier de configuration Eclipse est également créé avec mvn eclipse: eclipse
.
$ mkdir ~/java_apps && cd ~/java_apps
$ mvn archetype:generate \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false \
-DgroupId=com.example \
-DartifactId=spike
$ cd spike
$ mvn eclipse:eclipse
Démarrez Emacs.
$ emacs
Importez le projet généré à partir de l'archétype dans Eclipse.
M-x eclim-project-import
Il vous sera demandé le répertoire du projet dans le mini-tampon, spécifiez donc le répertoire du projet.
Project Directory: ~/java_apps/spike/
Date ajoutée à "Hello world!".
~/java_apps/spike/src/main/java/com/example/App.java
package com.example;
import java.util.Date;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
Date date = new Date();
System.out.println( "Hello World!: " + date.getMinutes());
}
}
Si vous entrez date.get
, les candidats seront affichés dans le pop-up et le mini-tampon. Sélectionnez get Minutes
avec le curseur et appuyez sur Entrée.
Lorsque j'enregistre le fichier avec C-x C-s
, ʻEclim signale 0 erreur, 1 avertissement .s'affiche. Si
getMinutes` est souligné et que vous y déplacez le curseur, vous obtiendrez un message d'erreur dans le mini-tampon. Puisque c'est Hello world, je vais l'ignorer ici.
Si vous affichez le fichier Java avec la méthode main dans le tampon et exécutez ʻeclim-run-class`, la compilation et la méthode main s'exécuteront.
M-x eclim-run-class
Recommended Posts