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