Eclipse是一個開放源代碼的、與NetBeans、Sun ONE Studio和Borland Jbuilder類似的一種基於Java的整合型可擴展開發平台,也是目前最著名的開源項目之一,IBM在最近幾年裡也一直在大力支持該項目的發展,目標是將其做成用以替代IBM Visual Age for Java(簡稱IVJ)的下一代IDE開發環境,並於2001年11月宣布投入4千萬美元資金到該項目的研發。就其本身而言,它只是一個框架和一組服務,用於通過插件組件構建開發環境。幸運的是,Eclipse 附帶了一個標准的插件集,包括 Java 開發工具(Java Development Tools,JDT)。其未來的目標不僅僅是成為專門開發Java程序的IDE環境,根據Eclipse的體系結構,通過開發插件,它能擴展到任何語言的開發,甚至能成為圖片繪制的工具。
目前,Eclipse已經開始提供C語言開發的功能插件。更難能可貴的是,Eclipse是一個開放源代碼的項目,任何人都可以下載Eclipse的源代碼,並且在此基礎上開發自己的功能插件。也就是說未來只要有人需要,就會有建立在Eclipse之上的COBOL,Perl,Python等語言的開發插件出現。同時可以通過開發新的插件擴展現有插件的功能,比如本系列文章為了進行手機應用程序的開發就是通過J2ME插件的擴展來加以實現的。可以無限擴展,而且有著統一的外觀,操作和系統資源管理,這也正是Eclipse的潛力所在。
Eclipse的主要組成
Eclipse是一個開放源代碼的軟件開發項目,專注於為高度集成的工具開發提供一個全功能的、具有商業品質的工業平台。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術項目三個項目組成,具體包括四個部分組成--Eclipse Platform、JDT、CDT和PDE。JDT支持Java開發、CDT支持C開發、PDE用來支持插件開發,Eclipse Platform則是一個開放的可擴展IDE,提供了一個通用的開發平台。它提供建造塊和構造並運行集成軟件開發工具的基礎。Eclipse Platform允許工具建造者獨立開發與他人工具無縫集成的工具從而無須分辨一個工具功能在哪裡結束,而另一個工具功能在哪裡開始。
Eclipse SDK(軟件開發者包)是Eclipse Platform、JDT和PDE所生產的組件合並,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發環境,允許開發者有效地建造可以無縫集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse項目生產的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項目生產的軟件以 CPL發布,第三方組件有各自自身的許可協議。
特性簡介
上圖為Eclipse的軟件界面,看上去有點象Jbilder,但是實際操作還是更象IVJ,畢竟還是由開發IVJ的原班人馬主刀完成了Eclipse的開發。另外還值得一提的是Eclipse項目的參與者除了IBM以外,還有象Borland,Rational Software,RedHat,Merant等一大批業界姣姣者,這也為Eclipse的未來奠定了良好的基礎。正所謂好酒不怕巷子深,Eclipse剛推出不久就創造了6個月內100萬次的下載記錄,還被業界推崇為工具集成平台的標准並奪得Jolt最佳IDE獎、JDJ編輯推薦IDE等殊榮。目前Eclipse聯盟擁有12個成員,其中包括Borland、Fujitsu、IBM、MERANT、QNX Software Systems、Rational Software、RedHat、Serena Software、SuSE、Sybase、TogetherSoft和WebGain,此外,有超過175家的工具廠商已經或計劃在Eclipse平台之上開發工具。那麼Eclipse究竟是憑什麼取得如此不俗的成績呢?下面就分別從文件存放,開發環境,編譯與運行,版本管理以及使用插件等方面對Eclipse的各種特性作一個簡單的介紹,之後相信讀者一定不會再懷疑Eclipse的能力了。
大多IVJ的初學者都對找不到Java源代碼感到非常不適應,因為IVJ把所有的源代碼都存儲到一個reponsitory庫文件中,想要得到文本格式的源代碼必須用Export功能從reponsitory中導出源代碼。使用了reponsitory的IVJ對源代碼的管理功能幾乎達到極致,正是這一點使得許多程序員對IVJ鐘愛有加。而Eclipse雖然是將源代碼以文本方式保存,卻仍然實現了IVJ對源代碼管理的幾乎全部功能,並且還增加了一些新的功能,這不能不說是Eclipse的一個亮點。
在Eclipse的安裝目錄下會有一個workspace文件夾。每當新建一個項目,都會在該目錄中產生和項目同名的文件夾以存放與該項目相關的全部文件。將已有的文件加入到一個項目中目前有三種方式:第一種是象在IVJ中的一樣,用IDE的"文件"菜單中的"導入"功能將文件導入到項目中。這也是推薦的方式。第二種是從Windows的資源管理器中直接拖動文件到項目中。第三種就是直接將文件拷貝到項目文件夾中,然後在Eclipse的資源浏覽窗口中選擇項目或文件夾並執行從本地刷新功能。需要說明的一點是,項目文件夾可以放在計算機的任何位置,並且可以在Eclipse中用新建項目的方法將項目路徑指定到已經存在的項目文件夾,然後在Eclipse中刷新即可。但要注意的是,任何項目文件夾建立或指定,目前都只能在Eclipse中用新建項目的方法來實現,即使是在缺省存儲項目文件夾的workspace路徑下新建立一個文件夾,在Eclipse環境中也是無法將它變成一個項目,也就是說,這個文件夾對Eclipse是不可視的。
與IVJ一樣,Eclipse開發環境也被稱作工作台,主要由三部分組成:視圖、編輯窗口和觀察窗口。下圖為工作台的關系結構略圖:
可以看出工作台包含多個視圖,而每個視圖又包含不同的窗口。每個編輯窗口有很大的共性,而且缺省情況它們都在同一區域中顯示。所有文件的顯示和編輯都包含在編輯窗口裡。缺省情況下打開的多個文件以標簽形式在同一個窗口中排列,可以用拖動方式將這些文件排列成各種布局。當有文件被加入到項目中後,在資源浏覽或Java包浏覽窗口雙擊文件,Eclipse就會試圖打開這個文件:其中Eclipse內嵌的編輯器能缺省打開一些文件,如*.java,*.txt,*.class等。如果是其它類型的文件,Eclipse會調用操作系統相應的缺省編輯器打開,如Word文檔,PDF文件等。同時Eclipse也可以象IVJ一樣用指定的編輯器打開相應的文件。Eclipse還提供了只顯示所選單元的代碼顯示切換功能,這在編輯Java程序的時候可以以方法為單位進行編輯,不僅代碼的顯示更加簡捷,而且還有助於編寫封裝性更好的類。
浏覽窗口和Java浏覽窗口是觀察窗口核心部分。前者和Windows的浏覽器差不多,能浏覽項目文件夾中的所有文件,後者用來浏覽項目中的Java包,包中的類,類中的變量和方法等信息。在Java浏覽窗口中可以通過用鼠標右鍵菜單打開層次浏覽窗口,這個窗口非常實用,它能非常清晰的查看類的層次結構。類中的編譯出錯信息可以在任務窗口中查到,同時它也可以成為名符其實的任務窗口:向其中添加新的任務描述信息,來跟蹤項目的進度。控制台則主要用來顯示程序的輸出信息。在調試程序的時候,會有更豐富的觀察窗口來幫助程序員進行調試,如變量值察看窗口,斷點窗口等等。
觀察窗口是任何IDE開發環境的核心,Eclipse也提供了豐富的觀察窗口,不過要真正用好這些窗口恐怕還要經過一段時間的練習。
至於視圖,實際是包括一個或多個編輯窗口和觀察窗口。在開發環境的最左側的快捷欄中的上部分顯示的就是當前所打開的視圖圖標。視圖是Eclipse的最靈活的部分,可以自定義每個視圖中包含的觀察窗口種類,也可以自定義一個新視圖。在Eclipse的Java開發環境中提供了幾種缺省視圖,如資源視圖、Java視圖、調試視圖、小組同步視圖等等。每一種視圖都對應不同種類的觀察窗口。可以從菜單欄中的"打開透視圖"看到與該視圖對應的觀察窗口。當然,每個視圖的觀察窗口都是可配置的,多樣化的視圖不但可以幫助程序員以不同角度觀察代碼,也可以滿足不同的編程習慣。
IVJ具有非常強大的調試功能,有多種跟蹤方式,斷點設置,變量值察看窗口等。這些在Eclipse中都也有提供。而且會根據所安裝插件的不同而存在多種運行/調試程序的方式。
Eclipse還提供了強大的個人版本管理機制,每一次被保存的更改都可以得到恢復。而且可以精確到每一個方法的版本恢復。操作也十分方便,在任何一個能看到所要操作文件的觀察窗口都可以按照用戶的需求找到相應的版本。強大的個人版本管理功能為程序員提供了更多的信心:只管編下去,因為任何不小心的錯誤都是可以恢復的。Eclipse缺省為版本管理工具CVS提供了接口,可以非常方便的連接到CVS服務器上。通過CVS版本管理,Eclipse可以為團隊開發提供良好的環境。
至於Eclipse最大的閃光點——強大的插件加載功能在文章開始就有詳細的介紹,這裡就不在贅述。
小結
正是由於Eclipse的種種優秀特性,使得Eclipse在眾多整合型開發平台中脫穎而出。成為不少從事手機軟件開發的程序員的首選開發工具。限於篇幅,本篇文章僅從多個方面對Eclipse作了一個大體的介紹,至於Eclipse軟件的獲取方式、環境配置方法等具體技術細節。