2ヶ月前、Emacs24とEclimでOracle Java 8のインストールは失敗してしまいました。Spring BootをOracle Java 8で開発するために、Eclimをやめてauto-java-completeを使うように変更します。作成したbaseimageはDocker Hub Registryに Automated Buildしています。
Dockerfile
OpenJDK 7からOracle Java 8に変更します。
~/docker_apps/baseimage/Dockerfile RUN add-apt-repository ppa:webupd8team/java && \ echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive \ apt-get install -y build-essential software-properties-common \ zlib1g-dev libssl-dev libreadline-dev libyaml-dev \ libxml2-dev libxslt-dev sqlite3 libsqlite3-dev \ emacs24-nox emacs24-el git byobu wget curl unzip tree \ python-dev python-pip golang nodejs npm \ oracle-java8-installer ant maven ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
|
auto-complete-java
CaskからEclimを削除します。auto-complete-javaのインストールには auto-complete と YASnippet が必要なのでCaskに追加します。
~/docker_apps/baseimage/dotfiles/.emacs.d/Cask... (depends-on "auto-complete") ... ;; groovy (depends-on "groovy-mode")
;; java (depends-on "helm") (depends-on "yasnippet")
|
auto-java-completeはCaskからインストールできないようなので、git clone します。また、Tags.javaの中にASCII文字以外が入っているので、encodingは明示的にUTF-8にします。
~/docker_apps/baseimage/Dockerfile RUN cd ${HOME}/.emacs.d && \ git clone https://github.com/emacs-java/auto-java-complete && \ cd auto-java-complete && \ javac Tags.java -encoding UTF-8 && \ java -cp "/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar:." Tags
|
auto-completeの設定をします。
~/docker_apps/baseimage/dotfiles/.emacs.d/inits/04-auto-complete.el(require 'auto-complete-config) (require 'auto-complete) (global-auto-complete-mode t) (add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/ac-dict") (ac-config-default) (setq ac-use-menu-map t) (setq ac-delay 0.1) (setq ac-auto-show-menu 0.2)
|
auto-java-completeはgit cloneしたディレクトリをload-pathに追加します。
~/docker_apps/baseimage/dotfiles/.emacs.d/inits/07-auto-java-complete.el(add-to-list 'load-path "~/.emacs.d/auto-java-complete") (require 'ajc-java-complete-config) (add-hook 'java-mode-hook 'ajc-java-complete-mode)
|
YASnippetをrequireします。
~/docker_apps/baseimage/dotfiles/.emacs.d/inits/08-yasnippet.el(require 'yasnippet) (yas-global-mode 1)
|
ついでにHelmをインストールします。C-x C-f
したときにDiredよりも便利に使えます。
~/docker_apps/baseimage/dotfiles/.emacs.d/inits/09-helm.el(require 'helm-config) (helm-mode 1)
|