Maven2連携可能な malabar-mode があれば java-mode も jde-mode も不要かも
仕事だと(周りに合わせるあ為に) Eclipse を使っているけど家ではできるだけ何でも Emacs でやりたくて、当然ビルドには Maven2 を使いたい。jde-mode からうまく Maven2 を扱える elisp が無いかな...と他力本願で探してみたら色々見つかって、その中では malabar-mode が現時点のベストっぽい。本格的に使ってみるのはこれからだけど、日本語記事が見あたらなかったので書いておく。
そもそも最初は maven2 と連携だけできればと思って pom-parser.el を見つけたんだけど同作者の jde-mvn の方が新しいって注釈があり、じゃあそっちを、と思ったら今度はこれも古いから malabar-mode を使え、と書いてある。 maven2 連携だけかと思ったら jde の代替らしい。作者の espenhw 氏、かなり勢いがある。
ちなみにマラバルっていうのはジャワティーの高級茶葉の名前らしい。
できること
(まだ)できないこと
導入
git clone git://github.com/espenhw/malabar-mode.git
- MacEmacs な人は pom.xml 内の
emacs ってなってる所を/Applications/Emacs.app/Contents/MacOS/Emacs に書き換える - site-lisp に cedet を置く(ビルド時に emacs をバッチ起動するため)
- mvn package でビルド、なんだけど試した時点の最新ソースでは test でエラーが出たため、めんどくさいので -Dmaven.test.skip=true した
- target にできた zip を解凍して load-path にコピー
;;; *** Malabar Mode : A better Java mode (when (require 'malabar-mode nil t) (setq malabar-groovy-lib-dir (expand-file-name "~/lib/elisp/malabar-1.3-SNAPSHOT/lib")) ; お好みで (add-to-list 'auto-mode-alist '("\\.java\\'" . malabar-mode)) ;; 普段使わないパッケージを import 候補から除外 (add-to-list 'malabar-import-excluded-classes-regexp-list "^java\\.awt\\..*$") (add-to-list 'malabar-import-excluded-classes-regexp-list "^com\\.sun\\..*$") (add-to-list 'malabar-import-excluded-classes-regexp-list "^org\\.omg\\..*$") (add-hook 'malabar-mode-hook (lambda () (add-hook 'after-save-hook 'malabar-compile-file-silently nil t)))) ;;; **** Malabar Groovy : Customization of malabar-mode's inferior Groovy. (setq malabar-groovy-java-options '("-Duser.language=en")) ; 日本語だとコンパイルエラーメッセージが化けるので