导出Eclipse RCP项目心得

Posted on 2006-03-31 13:18 nemo 阅读(6356) 评论(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