導出Eclipse RCP項目心得

          Posted on 2006-03-31 13:18 nemo 閱讀(6381) 評論(4)  編輯  收藏 所屬分類: EclipseRCP/SWT/JFACE

          ???????? 搞了整整兩天才終于將項目從 Eclipse 中導了出來,網上雖然有許多可供參考的標準導出步驟,但對于具體的項目來說可能會因為版本的不同或者是插件的不同產生各種各樣的問題。下面是我在導出 RCP 程序過程中的一些心得,希望對大家 有些幫助。

          1. 有樣學樣法則真的是很重要,特別是當你無法馬上理解 Eclipse 內部機制的時候更是如此。自己一個人摸索很久還不如照著現成的去做更加有效率。可以在導出 RCP 項目時察看示例源碼 Hyperbola ,是一個聊天程序, Eclipse.Rich.Client.Platform.Designing.Coding.and.Packaging.Java.Applications 書中的示例。該書網上有 chm 版本的下載。源碼下載鏈接: http://eclipsercp.org/book/cd.php 注意:當出現錯誤時一定要照著源碼的配置一項一項的檢查,重點是檢查 .product 文件和 PDE Build 項和 MENIFEST.MF 。許多時候一個非常細小的差別往往使程序導出失敗。
          1. 在發布 RCP 以及導出插件包時,其他相關的插件( Required Plugins )必須打包后加載進 Eclipse 插件中(可以采用 Link 方式),而不能作為 WorkSpace 中打開的項目加載在插件依賴項中,這樣才能順利將插件和 RCP 項目導出。或者不加載進 Eclipse 插件中,只要將其作為第三方插件,在 PDE runtime 選項組添加該插件再打包。或者在 WorkSpace 該插件項目中新增加一個文件夾,在其中放入所依賴的插件項。然后在 PDE Build 選項組二進制構建子選項組中將其包含也可。
          1. PDE Build 選項組中的運行時信息,默認名是一個“ . ”,意思是直接在 plugins 目錄下生成 jar 文件,如果給它起自己的名稱的話,將會根據那個名稱在 plugins 目錄下生成一個文件夾,然后在該文件夾里才會有自己的 jar 文件。在導出 Eclipse RCP 項目時,主插件應該保持默認名,使其生成的 jar 文件在 plugins 目錄下便存在,否則便會出現應用程序找不到的錯誤。
          1. MENIFEST.MF 里面的代碼跟最終的結果關系很大。下面把其中的格式復制出來,以便有一些參考性的東西。
          ?1 Manifest - Version:? 1.0
          ?2 Bundle - ManifestVersion:? 2
          ?3 Bundle - Name:?MyProject?Plug - in
          ?4 Bundle - SymbolicName:?MyProject;?singleton: = true
          ?5 Bundle - Version:? 1.0 . 0
          ?6 Bundle - Localization:?plugin
          ?7 Require - Bundle:?org.eclipse.ui,
          ?8 org.eclipse.core.runtime,
          ?9 org.eclipse.core.resources,
          10 org.eclipse.ui.ide,
          11 Eclipse - AutoStart:? true
          12 Export - Package:?myProject,
          13Bundle-Activator: myProject.MyProjectPlugin

          ?

          ?

          其中,12Export-Package項是你希望外部可見的包,寫不寫對導出項目沒有影響。
          下面第13項在MENIFEST.MF中可能會自動生成,在導出插件時要注意將其去掉,否則會產生錯誤。(具體原因還未知,希望高人指點迷津.? 其他的應該不用說了吧?!

          Feedback

          # re: 導出Eclipse RCP項目心得  回復  更多評論   

          2006-04-16 16:20 by 盧衛華
          請問為什么用rcp的run program 不能InitialContext,weblogic的環境
          而用普通的run就可以呢?

          # re: 導出Eclipse RCP項目心得[未登錄]  回復  更多評論   

          2007-02-27 21:00 by 哈哈
          你有沒有寫好的代碼,發給我一份,謝謝拉,icphjl@163.com

          # re: 導出Eclipse RCP項目心得  回復  更多評論   

          2007-03-06 10:26 by nemo
          好久都沒有更新隨筆了。導出Eclipse RCP項目可以使用Ant構建,發現PDE所提供的向導方便是方便,卻老是出錯。

          # re: 導出Eclipse RCP項目心得  回復  更多評論   

          2007-03-06 10:35 by nemo
          現在對OSGi了解的比較多了,OSGi對Eclipse發現插件、控制插件都非常重要。在Eclipse3.1以后,OSGi bundle代替原來的插件來控制插件的生命周期。MANIFEST.MF文件包含了許多OSGi頭和特定的基于Eclpse平臺的偽代碼。
          文中第13行Bundle-Activator即為激活器類。在Eclipse3.2以后,已經將Eclipse創建插件向導自動產生的插件類命名為Activator。這個頭部是必須的,Activicator來控制插件的啟動、運行、結束,缺少了這個頭將會無法創建插件。
          第12行:Export-package中的包表示對其他插件可見的包,也是非常有用的選項。其他插件無法import此偽代碼沒有聲明的包。

          posts - 21, comments - 74, trackbacks - 0, articles - 3

          Copyright © nemo

          主站蜘蛛池模板: 无极县| 新田县| 蓬安县| 米泉市| 苍梧县| 乐都县| 乌兰察布市| 双鸭山市| 六枝特区| 远安县| 福鼎市| 延庆县| 泰州市| 安远县| 疏附县| 蒙山县| 土默特左旗| 谢通门县| 微山县| 子长县| 新巴尔虎右旗| 朝阳市| 余干县| 贺兰县| 巴林左旗| 云龙县| 东乡族自治县| 商丘市| 翁源县| 佛坪县| 阿克苏市| 牙克石市| 浦县| 开封市| 洛宁县| 绍兴县| 拜泉县| 万安县| 宁化县| 泽州县| 华池县|