導出Eclipse RCP項目心得

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

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

          1. 有樣學樣法則真的是很重要,特別是當你無法馬上理解 Eclipse 內(nèi)部機制的時候更是如此。自己一個人摸索很久還不如照著現(xiàn)成的去做更加有效率。可以在導出 RCP 項目時察看示例源碼 Hyperbola ,是一個聊天程序, Eclipse.Rich.Client.Platform.Designing.Coding.and.Packaging.Java.Applications 書中的示例。該書網(wǎng)上有 chm 版本的下載。源碼下載鏈接: http://eclipsercp.org/book/cd.php 注意:當出現(xiàn)錯誤時一定要照著源碼的配置一項一項的檢查,重點是檢查 .product 文件和 PDE Build 項和 MENIFEST.MF 。許多時候一個非常細小的差別往往使程序?qū)С鍪 ?/span>
          1. 在發(fā)布 RCP 以及導出插件包時,其他相關(guān)的插件( Required Plugins )必須打包后加載進 Eclipse 插件中(可以采用 Link 方式),而不能作為 WorkSpace 中打開的項目加載在插件依賴項中,這樣才能順利將插件和 RCP 項目導出。或者不加載進 Eclipse 插件中,只要將其作為第三方插件,在 PDE runtime 選項組添加該插件再打包。或者在 WorkSpace 該插件項目中新增加一個文件夾,在其中放入所依賴的插件項。然后在 PDE Build 選項組二進制構(gòu)建子選項組中將其包含也可。
          1. PDE Build 選項組中的運行時信息,默認名是一個“ . ”,意思是直接在 plugins 目錄下生成 jar 文件,如果給它起自己的名稱的話,將會根據(jù)那個名稱在 plugins 目錄下生成一個文件夾,然后在該文件夾里才會有自己的 jar 文件。在導出 Eclipse RCP 項目時,主插件應(yīng)該保持默認名,使其生成的 jar 文件在 plugins 目錄下便存在,否則便會出現(xiàn)應(yīng)用程序找不到的錯誤。
          1. MENIFEST.MF 里面的代碼跟最終的結(jié)果關(guān)系很大。下面把其中的格式復制出來,以便有一些參考性的東西。
          ?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中可能會自動生成,在導出插件時要注意將其去掉,否則會產(chǎn)生錯誤。(具體原因還未知,希望高人指點迷津.? 其他的應(yīng)該不用說了吧?!

          Feedback

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

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

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

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

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

          2007-03-06 10:26 by nemo
          好久都沒有更新隨筆了。導出Eclipse RCP項目可以使用Ant構(gòu)建,發(fā)現(xiàn)PDE所提供的向?qū)Х奖闶欠奖悖瑓s老是出錯。

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

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

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

          Copyright © nemo

          主站蜘蛛池模板: 南岸区| 武乡县| 广丰县| 平原县| 甘孜| 青龙| 师宗县| 理塘县| 江津市| 咸丰县| 光山县| 临泉县| 伊宁县| 长垣县| 深州市| 三台县| 乐平市| 华池县| 龙井市| 克拉玛依市| 乌兰浩特市| 凉山| 新安县| 彭山县| 江华| 建阳市| 福贡县| 镇雄县| 武功县| 于都县| 江永县| 聂拉木县| 南皮县| 井陉县| 石家庄市| 临泉县| 朝阳区| 皮山县| 万源市| 泸定县| 云和县|