???今天在開(kāi)發(fā)完插件后準(zhǔn)備打包發(fā)布到單獨(dú)的Eclipse運(yùn)行環(huán)境時(shí)發(fā)現(xiàn)開(kāi)發(fā)的程序界面無(wú)法顯示??郁悶了2個(gè)小時(shí),才調(diào)試出來(lái)問(wèn)題所在,現(xiàn)把自己開(kāi)發(fā)打包的心得與大家分享一下先,希望與有經(jīng)驗(yàn)的兄弟討論。
???先說(shuō)一下今天問(wèn)題的具體情況:
程序簡(jiǎn)介:
1、開(kāi)發(fā)了一個(gè)有Editor界面的插件程序(SWT風(fēng)格的,關(guān)于SWT可以參看我blogjava的文章http://www.tkk7.com/hengheng123456789)
2、由于項(xiàng)目需要修改了Eclipse的部分源代碼,并重新編輯加入項(xiàng)目中
3、使用了第三方的可視化開(kāi)發(fā)SWT界面的插件程序
問(wèn)題:
1、在開(kāi)發(fā)環(huán)境進(jìn)行運(yùn)行和調(diào)試均無(wú)問(wèn)題
2、導(dǎo)出成Eclipse插件包也無(wú)錯(cuò)誤提示
3、發(fā)布到單獨(dú)的Eclipse運(yùn)行環(huán)境進(jìn)行運(yùn)行時(shí),無(wú)法顯示所開(kāi)發(fā)的Editor界面,只顯示了一個(gè)Eclipse自身Editor的框架(郁悶!)
解決方案:
???經(jīng)過(guò)多方查找(差點(diǎn)重裝系統(tǒng)),終于發(fā)現(xiàn)原來(lái)是修改的Eclipse源代碼的禍(倒不是修改的錯(cuò)),是我在插件編輯環(huán)境時(shí)引用了修改的Eclipse源代碼項(xiàng)目,但在打包發(fā)布時(shí)沒(méi)有將修改的Eclipse源代碼一同打進(jìn)同一個(gè)包中,但在程序插件配置文件中已經(jīng)包含了修改的Eclipse源代碼路徑,所以在單獨(dú)運(yùn)行時(shí)找不到這個(gè)路徑,顯示不出來(lái)所開(kāi)發(fā)的Editor界面。
???經(jīng)過(guò)這一番折騰,頗有心得,現(xiàn)總結(jié)以前在打包發(fā)布插件的一起列舉如下,希望對(duì)大家有所幫助!
1、打包發(fā)布前一定要把需要引用的非Eclipse包添加入(編輯Plugin.xml文件的編輯界面)Build標(biāo)簽頁(yè)的Extra Classpath Entries項(xiàng)(選擇Add JARs...按鈕進(jìn)行添加)
2、需要引用的非Eclipse包也要添加入(編輯Plugin.xml文件的編輯界面)Runtime標(biāo)簽頁(yè)的Classpath項(xiàng)(選擇Add...按鈕進(jìn)行添加)
3、非Eclipse包添加后記住,要察看項(xiàng)目的Java Build Path中的Libraries是否報(bào)錯(cuò),可能是因?yàn)橐陨蟽蓚€(gè)步驟把包加入到Plug-in Dependencies庫(kù)中了,但在原來(lái)的Classpath中也包含這些包,出現(xiàn)了重復(fù)引用,直接刪除原來(lái)的Classpath引用即可
4、保證在打包發(fā)布時(shí),引用的包只有JRE System Library和Plug-in Dependencies,即除了JRE外,其他所引用的包全部應(yīng)當(dāng)在Plug-in Dependencies庫(kù)中,這樣導(dǎo)出的插件包程序才能夠找到這些包!
5、發(fā)布到新的Eclipse環(huán)境下運(yùn)行前要必須清空eclipse/configuration目錄下除config.ini文件外的其他全部文件。(這是因?yàn)镋clipse的運(yùn)行機(jī)制是:如果configuration目錄中有編輯好的Eclipse插件,則直接運(yùn)行configuration目錄中的插件程序,否則把plugin目錄中的文件編輯到configuration目錄中,再運(yùn)行!)
???目前我在開(kāi)發(fā)中遇到的問(wèn)題就是這些,希望大家予以補(bǔ)充和更正,謝謝!