Eclipse作為強(qiáng)大的開(kāi)發(fā)IDE,本身也作為一款開(kāi)源軟件,提供給了用戶(hù)強(qiáng)大的擴(kuò)展能力。我們可以自己開(kāi)發(fā)一款插件,只要放到插件目錄下,就可以使用。 下面是本博文主要介紹的內(nèi)容,希望能幫助新手對(duì)插件開(kāi)發(fā)有一定的了解。
1 學(xué)習(xí)資料學(xué)習(xí)資料就是思維導(dǎo)圖上面介紹的幾種。由于國(guó)內(nèi)搞這個(gè)方向的確實(shí)是少,也就是在一些大型公司或者專(zhuān)門(mén)開(kāi)發(fā)一些設(shè)計(jì)工具的公司才會(huì)用到。因此,目前出版的書(shū)籍大多已經(jīng)不再印刷了,只能從網(wǎng)上下載電子版,或者從淘寶買(mǎi)稀缺的紙質(zhì)書(shū)籍。 關(guān)于書(shū)籍,推薦下面幾本。推薦書(shū)籍都有百度云盤(pán)鏈接可以下載。 《Eclipse插件開(kāi)發(fā)讀書(shū)筆記》 這本書(shū)相對(duì)于新手來(lái)說(shuō),還算不錯(cuò)。因?yàn)榫W(wǎng)上可以輕松的找到源碼。對(duì)照著看書(shū),容易理解一些。書(shū)籍的風(fēng)格上也偏新手教學(xué)。 這本書(shū)簡(jiǎn)直就像一本API的教程,英文原版應(yīng)該說(shuō)是Eclipse開(kāi)發(fā)圣經(jīng),但是漢譯的沒(méi)什么特別感覺(jué),而且找不到源代碼。穿插著,用來(lái)熟悉API不錯(cuò)。 這本英文電子版的書(shū)籍,是從GEF的官網(wǎng)上就可以下載的。推薦研究GEF的時(shí)候再看。
論壇,其實(shí)沒(méi)有太好的,畢竟開(kāi)發(fā)人員少。 還是看IBM的developer或者Eclipse的官方網(wǎng)站比較好。 IBM Develper : http://www.ibm.com/developerworks/cn/java/os-ecplug/ Eclipse Corner : https://wiki./Eclipse_Corner
博客 這個(gè)可以說(shuō)是國(guó)內(nèi)開(kāi)發(fā)人員最好的學(xué)習(xí)地方了。 首輪最佳推薦,【八進(jìn)制】的博客,我學(xué)習(xí)GEF基本就是總看他的博客,可惜他已經(jīng)不研究這個(gè)了,要不然可以作為領(lǐng)路人了。 http://www.cnblogs.com/bjzhanghao/category/36197.html 其他人的寫(xiě)的也不多,也就不做多說(shuō)了。
源碼 關(guān)于Eclipse插件的源碼,閱讀起來(lái)真心不是一般的累。因?yàn)闉榱擞瞎俜降拈_(kāi)發(fā)模式,我們自己開(kāi)發(fā)的插件,往往也十分龐大。一個(gè)簡(jiǎn)單的編輯器功能,基本上都要幾千行甚至上萬(wàn)的代碼。如果沒(méi)有一定的理論基礎(chǔ),看代碼是十分痛苦的。這里推薦幾個(gè)學(xué)習(xí)的源碼: 【org.eclipse.draw2d.examples】,這里面有很多獨(dú)立啟動(dòng)的小應(yīng)用??梢詫W(xué)習(xí)很多插件相關(guān)的知識(shí),比如屬性開(kāi)發(fā),界面等等。 【讀書(shū)筆記附帶源碼】, 結(jié)合書(shū)籍閱讀,簡(jiǎn)直是開(kāi)發(fā)必備。 【GEF源碼】,官網(wǎng)都有下載,這里是3.6版本。這個(gè)插件安裝到eclipse后,會(huì)在新建工程的導(dǎo)航菜單里面,看到Examples文件夾,打開(kāi)就可以看到有幾個(gè)文件。這幾個(gè)都是GEF的樣例代碼,比如logic,可以給開(kāi)發(fā)者進(jìn)行學(xué)習(xí)和參考。
另外呢,sourceForge以及github上面都有不少的開(kāi)源插件,但是大多比較龐大,大家可以針對(duì)某一些領(lǐng)域?qū)iT(mén)查找學(xué)習(xí)。
2 插件的安裝
Eclipse插件通常以jar包形式存在,這個(gè)jar包需要先進(jìn)行解壓縮。 【方法1】:解壓縮后直接放在Eclipse開(kāi)發(fā)工具文件目錄的Plugins下。 【方法2】:在dropins里面創(chuàng)建XXX.link文件,然后以相對(duì)路徑的方式放置插件。 比如我們?cè)谶@個(gè)目錄下新建一個(gè)文件夾my_plugins。那么link的內(nèi)容應(yīng)該是:path=my_plugins\\XXX
另外有一個(gè)小技巧:如果你想查看eclipse的版本,可以用記事本打開(kāi).eclipseproduct文件,里面可以看到eclipse的版本: name=Eclipse Platform id=org.eclipse.platform version=4.4.0 如果你想修改jvm或者綁定jdk的路徑,可以修改eclipse.ini -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20140603-1326 -product org.eclipse.epp.package.jee.product --launcher.defaultAction openFile --launcher.XXMaxPermSize 256M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.6 -Xms40m -Xmx512m
3 插件的調(diào)試以及創(chuàng)建
之前整理過(guò)一篇圖片貼,是關(guān)于 如何創(chuàng)建一個(gè)插件開(kāi)發(fā)工程 ,那么這里就不再對(duì)創(chuàng)建工程做過(guò)多的描述了。 一般插件都是以Eclipse Application方式啟動(dòng)調(diào)試,如果是Debug模式,當(dāng)你插入斷電后,運(yùn)行到此處會(huì)進(jìn)入debug調(diào)試模式。與正常的JAVA項(xiàng)目相同。 當(dāng)然也有許多是在Java Application,也即是main函數(shù)里面創(chuàng)建的,比如org.eclipse.draw2d.examples里面的示例。
4 學(xué)習(xí)路線基本的路線就是要有一定的JAVA基礎(chǔ),要不然學(xué)習(xí)起來(lái)很吃力的。 swt,主要是一些界面的布局開(kāi)發(fā)。 GEF,是開(kāi)發(fā)編輯器的一種常用技術(shù)。 EMF,是開(kāi)發(fā)復(fù)雜模型的框架。 GMF,是GEF與EMF的整合,但是包含的插件包很多,因此不推薦學(xué)習(xí)。如果使用的話,自己整合GEF和EMF也是可以的。紅皮書(shū)里面有整合的內(nèi)容。
關(guān)于設(shè)計(jì)模式,不得不說(shuō),Eclipse插件開(kāi)發(fā)里面涉及到了大量的設(shè)計(jì)模式。下面就簡(jiǎn)單的介紹下插件開(kāi)發(fā)中設(shè)計(jì)模式的典型應(yīng)用場(chǎng)景。
【工廠方法】 比如在GEF中的Control模塊,就是使用這種設(shè)計(jì)模式匹配Model與view之間的關(guān)系。 【單例模式】 由于eclipse面向的是整個(gè)開(kāi)發(fā)周期,因此資源的使用必須高效。在必要的時(shí)候,對(duì)生命周期很長(zhǎng)的對(duì)象使用單例模式是必須的,比如Plugin對(duì)象。 【適配器模式】 對(duì)于不同的類(lèi),編輯器提供不同的處理方法。在Editor類(lèi)中,就需要對(duì)不同的類(lèi)進(jìn)行適配。 【命令模式】 編輯器里面,很多命令操作都是需要記錄的。比如我們刪除了一個(gè)模型節(jié)點(diǎn),需要通過(guò)撤銷(xiāo)操作恢復(fù)。那么數(shù)據(jù)都要保存在命令對(duì)象中,并且記錄在CommonStack里面,在必要的時(shí)候進(jìn)行Undo,Redo操作。 【策略模式】 對(duì)于復(fù)雜的應(yīng)用場(chǎng)景,有很多處理方法。為了便于對(duì)某一模型擴(kuò)展處理方法,策略模式也是經(jīng)典的處理方法。
設(shè)計(jì)模式的學(xué)習(xí),可以參考之前整理的博文:設(shè)計(jì)模式總覽 進(jìn)行學(xué)習(xí)。 5 開(kāi)發(fā)前景說(shuō)到這個(gè),如果沒(méi)有一定的開(kāi)發(fā)價(jià)值,也許大家沒(méi)有學(xué)習(xí)的動(dòng)力。 市場(chǎng)上的許多UML設(shè)計(jì)軟件都是使用Eclipse插件來(lái)開(kāi)發(fā)的,而且Eclipse的RCP富客戶(hù)端開(kāi)發(fā),應(yīng)用也十分廣泛。 就說(shuō)目前流行的一款思維導(dǎo)圖軟件XMind,就是使用Eclipse的RCP技術(shù)開(kāi)發(fā),有一些很好的功能,都是需要付費(fèi)試用的,所以“錢(qián)景”也是很大的。
希望這個(gè)方向,能有更多新人注入! 后續(xù)還會(huì)不斷的更新,插件開(kāi)發(fā)的小技巧以及使用等等,謝謝支持。 |
|