Die Java-Entwicklung verwendet lokale IDEs wie IntelliJ IDEA und Eclipse für Windows und macOS, aber ich denke, dass viele Leute Vim- und Emacs-Editoren für die Entwicklung von Skriptsprachen wie Node.js und Python verwenden. Mit Eclim kann Java auch im Editor entwickelt werden. Wenn Sie eine Entwicklungsumgebung auf einer virtuellen Maschine in der Cloud erstellen, können Sie dieselbe Entwicklung jederzeit per SSH-Verbindung vom Terminal aus durchführen, ohne von den lokalen Einstellungen abhängig zu sein.
Bereiten Sie eine virtuelle Maschine in der Cloud vor. Dieses Mal werden wir eine Java-Entwicklungsumgebung unter Ubuntu 16.04 LTS (Xenial Xerus) erstellen.
$ 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
Aktualisieren Sie das Paket.
$ sudo apt-get update && sudo apt-get dist-upgrade -y
Java
Installieren Sie das Java 8 SDK. Es muss nicht OpenJDK sein.
$ 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 stellt eine Verbindung zu Eclipse her und ermöglicht es Ihnen, einige Funktionen von Eclipse im Editor zu verwenden. Download Eclipse Oxygen (4.7), veröffentlicht im Juni 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
Installieren Sie Emacs24.
$ sudo apt-get install emacs24-nox emacs24-el -y
$ emacs --version
GNU Emacs 24.5.1
Cask
Dies ist Cask für die Emacs-Paketverwaltung. Git und Python werden für die Installation benötigt.
$ 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
Bereiten Sie die folgende Einstellungsdatei im Verzeichnis ~ / .emacs.d
vor.
$ tree ~/.emacs.d
.emacs.d.bak/
├── Cask
├── init.el
└── inits
├── 00-keybindings.el
├── 01-menu.el
├── 02-files.el
└── 08-eclim.el
init.el
verwendet init-loader, um die Datei zu teilen. Bitte verwenden Sie nach Belieben andere als "~ / .emacs.d / inits / 08-eclim.el".
~/.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")
Beschreibt das in Cask zu installierende Paket. Eclim und company-emacs-eclim für die Java-Entwicklung /company-emacs-eclim.el) ist installiert.
el:~/.emacs.d/Cask
(source gnu)
(source melpa)
(depends-on "cask")
(depends-on "init-loader")
;; java
(depends-on "eclim")
(depends-on "company-emacs-eclim")
Die Eclim-Einstellungen folgen README. Verwenden Sie Unternehmensmodus für Popup-Dialoge und Code-Vervollständigung.
~/.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)
Die folgenden Einstellungen sind nicht erforderlich, werden jedoch häufig in Emacs verwendet. Ändern Sie die Rücktaste mit "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)
Blenden Sie das Emacs-Menü aus.
~/.emacs.d/inits/01-menu.el
(menu-bar-mode 0)
Löschen Sie Leerzeichen am Zeilenende, erstellen Sie keine Sicherungen, Registerkarteneinstellungen usw.
~/.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)
Führen Sie abschließend den Befehl cask
aus, um das Paket zu installieren.
$ cd ~/.emacs.d
$ cask install
Eclim
Virtueller Frame-Puffer Xvfb für die kopflose Verwendung von Eclipse, für die ein X-Server erforderlich ist, wie unter Installation auf einem kopflosen Server beschrieben. Installieren Sie (: //www.x.org/releases/X11R7.7/doc/man/man1/Xvfb.1.xhtml).
$ sudo apt-get install xvfb build-essential -y
Wechseln Sie in das Eclipse-Verzeichnis und installieren Sie 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
Starten Sie Xvfb und eclimd.
$ Xvfb :1 -screen 0 1024x768x24 &
$ DISPLAY=:1 /opt/eclipse/eclimd -b
Erstellen Sie ein Beispielprojekt aus dem Archetyp maven-archetype-quickstart und überprüfen Sie die Funktion von Eclim. Installieren Sie zunächst Maven von SDKMAN!.
$ curl -s get.sdkman.io | /bin/bash
$ source ~/.sdkman/bin/sdkman-init.sh
$ sdk install maven
...
Setting maven 3.5.0 as default.
Führen Sie "mvn archetype: generate" in einem Verzeichnis Ihrer Wahl aus. Die Eclipse-Konfigurationsdatei wird auch mit "mvn eclipse: eclipse" erstellt.
$ 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
Starten Sie Emacs.
$ emacs
Importieren Sie das aus dem Archetyp generierte Projekt in Eclipse.
M-x eclim-project-import
Sie werden im Minibuffer nach dem Projektverzeichnis gefragt. Geben Sie daher das Projektverzeichnis an.
Project Directory: ~/java_apps/spike/
Datum zu "Hallo Welt!" Hinzugefügt.
~/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());
}
}
Wenn Sie "date.get" eingeben, werden die Kandidaten im Popup- und Minipuffer angezeigt. Wählen Sie mit dem Cursor "Minuten abrufen" und drücken Sie die Eingabetaste.
Wenn ich die Datei mit "C-x C-s" speichere, erhalte ich "Eclim meldet 0 Fehler, 1 Warnungen". Im Minibuffer wird eine Fehlermeldung angezeigt, wenn "getMinutes" unterstrichen und der Cursor dorthin bewegt wird. Da es Hallo Welt ist, werde ich es hier ignorieren.
Wenn Sie die Java-Datei mit der Hauptmethode im Puffer anzeigen und "eclim-run-class" ausführen, werden die Kompilierung und die Hauptmethode ausgeführt.
M-x eclim-run-class
Recommended Posts