Emacs Java Development Environment
Table of Contents
1 引言
非常感謝室友freexgh的介紹,讓我接觸了emacs這個軟件。學習emacs這兩年,深深地感受到了此軟件的強大,高度的可擴展性,很完美的自我文檔化,使得emacs如此的靈活。在emacs世界里你會覺得你可以盡情地編程,有什么不滿意的,看人家的配置,或者看人家的實現過程,自己修改配置。 Emacs的語言Elisp 語言非常的容易學習,有了它,就有了你能讓emacs做地一切。學習emacs是種積累,可以不停地網上堆積知識,突然發現干什么都離不開emacs了,emacs可以提供其他軟件統一的操作界面。你可以用你對emacs熟知的一切來操作其他軟件。 一直在網上索取別人的emacs學習心得和配置。直到發現關於emacs的資料很少能被搜到為止,覺得非常心痛,這么好地軟件在國內並不是那么地熱衷,至少在網站上介紹它的使用的不是那么多了。我很想把自己學習和配置emacs各個功能的學習心得貢獻出來,如果能夠幫到那些和我一樣,對emacs非常喜愛的朋友,那真得是我的榮幸。 emacs可以做非常多地事情,別的基本地功能可以通過讀emacs 自帶的info或者網站 emacs wiki的介紹就可以學習非常多。由於現在學習和工作中用到地J2ee開發比較多,網上關於JDEE的使用又不是非常多。因此記錄下來emacs中關於JDEE開發的一些說明和常用插件的介紹。
2 emacs j2EE 開發環境 JDEE
2.1 整體說明
如果你已經很熟悉emacs這個軟件,那么你就不會否認emacs編輯單個文件的強大,如果emacs能夠很好的開發企業項目,那么它的開發項目不會比eclipse低,如果有更多地人投入到emacs地使用中來,那么會有更多優秀的插件貢獻出來,那么emacs插件的成長速度會是非常驚人的。 JDEE的官方網站是:http://jdee.sourceforge.net/ JDEE的簡單介紹可以從JDEE官方網站了解到,可以通過讀JDEE User's Guide 可以基本地了解JDEE的使用。 JDEE的svn Repositories 地址為:http://jdee.svn.sourceforge.net/viewvc/jdee/ 也可以從emacswiki 中的programming 目錄中找到關於java development environment地很多資料,emacswiki的地址為:http://www.emacswiki.org/
2.2 變量說明
jde-compile-option-directory jde-built-class-path jde-run-class-path jde-sourcepath jde-global-classpath 還有很多這些變量,JDEE分得挺細的。你可以查閱:http://jdee.sourceforge.net/jdedoc/html/jde-ug/jde-ug.html 了解到更多的相關變量地功能。還有JDE menu中自定義代碼生成的過程。 以上一些變量都是可以通過M-x customize-variable 來進行配置的,你可以選擇 set current session把它保存到當前的工程文件prj.el中或者選擇set future session自動保存到.emacs配置文件中供所有項目使用。 jde-complete-functions 對這個變量特別做些說明,因為這個變量是設定語義補全的方式的,他有jde-complete-inline,jde-complete-menu,jde-complete-minibuffer三種默認的提示形式,但是都不是特別好用,可以用網上有人開發的一個自定義的補全形式jde-complete-ido,它可以將補全形式和ido和yasnippet結合起來,比較友好,速度也還可以。這個函數地代碼如下: 轉載:
;;jde completion with ido and yasnippet
(defun jde-complete-ido ()
"Custom method completion for JDE using ido-mode and yasnippet."
(interactive)
(let ((completion-list '()) (variable-at-point (jde-parse-java-variable-at-point)))
(dolist (element (jde-complete-find-completion-for-pair variable-at-point nil) nil)
(add-to-list 'completion-list (cdr element)))
(if completion-list
(let ((choise (ido-completing-read "> " completion-list nil nil (car (cdr variable-at-point)))) (method))
(unless (string-match "^.*()$" choise)
(setq method (replace-regexp-in-string ")" "})"(replace-regexp-in-string ", " "}, ${" (replace-regexp-in-string "(" "(${" choise)))))
(delete-region (point) (re-search-backward "\\." (line-beginning-position)))
(insert ".")
(if method
(yas/expand-snippet method)
(insert choise)))
(message "No completions at this point"))))
(add-hook 'jde-mode-hook 'jde-complete-ido)
2.3 插件說明
很多插件還要自己根據需要查閱和使用。
2.3.1 JDIbug
官方網站上已經介紹地非常的詳細了,這里就不在贅述了。 官方網站地址如下: http://jdibug.googlecode.com/svn/trunk/jdibug.html JDEE利用該插件可以非常方便地進行遠程調試,你可以用它來進行tomcat和glassfish的遠程調試。效果還不錯,如圖。
2.3.2 Jde-usage
這個插件也是非常的強大,利用這個插件可以實現一個類中方法的調用關系。它的速度很快,主要是用來實現一個方法在什么地方被調用,一個類它的祖先是什么,被哪些類繼承等等。 jde-usage的官方地址為:http://jde-usages.sourceforge.net/ 其他插件
2.3.3 jde-flymaker
可以利用很多語言檢查器進行線上的語義檢查,可以利用eclipse的語法檢查器ecj,到達與eclipse語法檢查,語義檢查一樣的效果
2.3.4 jde-jalopy
格式化java文件
2.3.5 jmaker
自動生成和編輯java的makefile文件
2.3.6 decompiler
反編譯class文件
2.3.7 maven插件
配置maven項目,網上還有maven項目,eclipse項目和jdee項目互轉的插件。
2.3.8 jde-lint4j
大家插一下lint4j就知道它是做什么的了。又一個強大的插件。
2.3.9 jde-findbugs
2.3.10 …其他插件可以通過google來搜索。發現百度在這方面搜不到。。
Date: 2012-03-28 10:28:41
HTML generated by org-mode 6.33x in emacs 23
