Eclipse 是替代IBM Visual Age for java(以下簡(jiǎn)稱(chēng)IVJ)的下一代IDE開(kāi)發(fā)環(huán)境,但它未來(lái)的目標(biāo)不僅僅是成為專(zhuān)門(mén)開(kāi)發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過(guò)開(kāi)發(fā)插件,它能擴(kuò)展到任何語(yǔ)言的開(kāi)發(fā),甚至能成為圖片繪制的工具。目前,Eclipse已經(jīng)開(kāi)始提供C語(yǔ)言開(kāi)發(fā)的功能插件。更難能可貴的是,Eclipse是一個(gè)開(kāi)放源代碼的項(xiàng)目,任何人都可以下載Eclipse的源代碼,并且在此基礎(chǔ)上開(kāi)發(fā)自己的功能插件。也就是說(shuō)未來(lái)只要有人需要,就會(huì)有建立在Eclipse之上的COBOL,Perl,Python等語(yǔ)言的開(kāi)發(fā)插件出現(xiàn)。同時(shí)可以通過(guò)開(kāi)發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,比如在現(xiàn)有的Java開(kāi)發(fā)環(huán)境中加入Tomcat服務(wù)器插件。可以無(wú)限擴(kuò)展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是Eclipse的潛力所在。
將已有的文件加入到一個(gè)項(xiàng)目中目前有三種方式:第一種是象在IVJ中的一樣,用IDE的"File"菜單中的"Import"功能將文件導(dǎo)入到項(xiàng)目中。這也是推薦的方式。第二種是從Windows的資源管理器中直接拖動(dòng)文件到項(xiàng)目中。第三種就是直接將文件拷貝到項(xiàng)目文件夾中,然后在Eclipse的資源瀏覽窗口中選擇項(xiàng)目或文件夾并執(zhí)行從本地刷新功能(Refresh from locate)。需要說(shuō)明的一點(diǎn)是,項(xiàng)目文件夾可以放在計(jì)算機(jī)的任何位置,并且可以在Eclipse中用新建項(xiàng)目的方法將項(xiàng)目路徑指定到已經(jīng)存在的項(xiàng)目文件夾,然后在Eclipse中刷新即可。但要注意的是,任何項(xiàng)目文件夾建立或指定,目前都只能在Eclipse中用新建項(xiàng)目的方法來(lái)實(shí)現(xiàn),即使是在缺省存儲(chǔ)項(xiàng)目文件夾的workspace路徑下新建立一個(gè)文件夾,在Eclipse環(huán)境中也是無(wú)法將它變成一個(gè)項(xiàng)目,也就是說(shuō),這個(gè)文件夾對(duì)Eclipse是不可視的。
瀏覽窗口和Java瀏覽窗口是觀察窗口核心部分。前者和Windows的瀏覽器差不多,能瀏覽項(xiàng)目文件夾中的所有文件,后者用來(lái)瀏覽項(xiàng)目中的Java包,包中的類(lèi),類(lèi)中的變量和方法等信息。在Java瀏覽窗口中可以通過(guò)用鼠標(biāo)右鍵的菜單中的Open Type Hierarchy打開(kāi)層次瀏覽窗口(Hierarchy),這個(gè)窗口非常實(shí)用,它能非常清晰的查看類(lèi)的層次結(jié)構(gòu)。類(lèi)中的編譯出錯(cuò)信息可以在任務(wù)窗口中查到,同時(shí)它也可以成為名符其實(shí)的任務(wù)窗口:向其中添加新的任務(wù)描述信息,來(lái)跟蹤項(xiàng)目的進(jìn)度。控制臺(tái)則主要用來(lái)顯示程序的輸出信息。在調(diào)試程序的時(shí)候,會(huì)有更豐富的觀察窗口來(lái)幫助程序員進(jìn)行調(diào)試,如變量值察看窗口,斷點(diǎn)窗口等等。
在目前的Eclipse的Release和Stable版本中缺省安裝了插件開(kāi)發(fā)環(huán)境(Plug-in Development Environment,即PDE,它本身也是一個(gè)插件),此時(shí)系統(tǒng)除了"Java Applicantion" 運(yùn)行方式,可能還有另外兩種方式:"Run-time WorkBench"和"Run-time WorkBench with Tracing",當(dāng)用PDE開(kāi)發(fā)插件的時(shí)候會(huì)用到這兩種運(yùn)行方式,在下面我們也有提到。
Eclipse提供了強(qiáng)大的個(gè)人版本管理機(jī)制,每一次被保存的更改都可以得到恢復(fù)。而且可以精確到每一個(gè)方法的版本恢復(fù)。操作也十分方便,在任何一個(gè)能看到所要操作文件的觀察窗口中,例如資源瀏覽窗口,選中該文件,點(diǎn)擊右鼠標(biāo)鍵,選擇Compare with或Replace with,如果是恢復(fù)已經(jīng)被刪除的方法則可以選擇Add from local history,之后相應(yīng)的本地歷史記錄就會(huì)顯示出來(lái),按照你的需求找到相應(yīng)的版本就可以了。強(qiáng)大的個(gè)人版本管理功能為程序員提供了更多的信心:只管編下去,任何不小心的錯(cuò)誤都可以恢復(fù),在Eclipse下開(kāi)發(fā),是有"后悔藥"的!
在Eclipse中使用CVS需要注意的是一些術(shù)語(yǔ)和功能的變化,CVS中的Branch這里被稱(chēng)為Stream,取消了CVS中check out、import和commit等功能,統(tǒng)統(tǒng)用鼠標(biāo)右鍵菜單中的Team->Synchronized with Stream來(lái)替代。這些功能都通過(guò)圖形界面完成,在每次操作中都會(huì)有當(dāng)前文件和以前各個(gè)版本的比較窗口,操作非常直觀,易于掌握,因此這里也就不再做進(jìn)一步介紹了。
由于有了插件,Eclipse系統(tǒng)的核心部分在啟動(dòng)的時(shí)候要完成的工作十分簡(jiǎn)單:?jiǎn)?dòng)平臺(tái)的基礎(chǔ)部分和查找系統(tǒng)的插件。在Eclipse中實(shí)現(xiàn)的絕大部分功能是由相應(yīng)的插件完成的,比如WrokBench UI插件完成界面的外觀顯示,Resource Management插件完成維護(hù)或生成項(xiàng)目或文件等資源管理工作(在下面的第二個(gè)例子就會(huì)用到這個(gè)插件),而Version and Configuration Management (VCM)插件則負(fù)責(zé)完成版本控制功能,等等。雖然以上提到的每一個(gè)功能都是絕大多數(shù)IDE環(huán)境所必備的功能,Eclipse卻也把它們都做成了插件模式,甚至用來(lái)開(kāi)發(fā)Java程序的開(kāi)發(fā)環(huán)境(Java development tooling,JDT)也只不過(guò)是Eclipse系統(tǒng)中的一個(gè)普通插件而已。整個(gè)Eclipse體系結(jié)構(gòu)就象一個(gè)大拼圖,可以不斷的向上加插件,同時(shí),現(xiàn)有插件上還可以再加插件。下面的插件開(kāi)發(fā)示例就是在WorkBench UI插件中的觀察窗口擴(kuò)展點(diǎn)上開(kāi)發(fā)的。
在確認(rèn)Weclome.java和plugin.xml都正確無(wú)誤之后,可以用Eclipse菜單欄中的Export命令將Weclome.java導(dǎo)出為JAR文件,它的名子應(yīng)該和plugin.xml中runtime聲明的JAR相一致。同時(shí)導(dǎo)出plugin.xml。安裝Welcome插件的方法和本文第一部分介紹的安裝Tomcat插件方法是一樣的:首先在"Eclipse的安裝路徑plugins"路徑下面建立一個(gè)com.nidapeng.eclipse.plugin路徑,然后將Weclome.jar和plugin.xml拷到這個(gè)路徑下。之后必需重新啟動(dòng)Eclipse,在Eclipse啟動(dòng)的時(shí)候,它會(huì)搜索所有在插件路徑下的插件并注冊(cè)它們(僅僅是注冊(cè),只有在需要某個(gè)插件的時(shí)候,Eclipse才會(huì)啟動(dòng)它)。在重新啟動(dòng)的Eclipse的菜單欄中選擇PerspectiveàShow ViewàOthers,在打開(kāi)的對(duì)話(huà)框中我們會(huì)找到在plugin.xml中extension的category標(biāo)簽中聲明的name屬性:Welcome。在Welcome的支結(jié)點(diǎn)中包含了view標(biāo)簽name屬性:Welcome to Eclipse。選中它并確認(rèn),Welcome窗口就會(huì)顯示在Eclipse Workbench上的某個(gè)位置 。如果在執(zhí)行了以上操作,但沒(méi)有顯示新窗口,可以再次打開(kāi)Show View菜單,此時(shí)在菜單中應(yīng)該有新一頂選擇:Welcome to Eclipse,然后選中它。
上面我們完成了一個(gè)觀察窗口的插件,但這個(gè)操作過(guò)程對(duì)開(kāi)發(fā)稍微復(fù)雜一些的插件就顯得不太方便了:每次測(cè)試都要將代碼打包,發(fā)布,再重新啟動(dòng)Eclipse系統(tǒng)!為此Eclipse提供了一個(gè)專(zhuān)門(mén)為開(kāi)發(fā)插件而做插件(有點(diǎn)繞嘴):Plug-in Development Environment(PDE)。本文前面曾提到,目前Eclipse的Release或Stable版本缺省提供了這個(gè)插件,因此如果安裝的Eclipse是這兩個(gè)版本中的一個(gè)就可以直接進(jìn)行下面的步驟。下面我們?cè)儆肞DE環(huán)境開(kāi)發(fā)一個(gè)稍微復(fù)雜一些的插件。