Eclipse RCP:MANIFEST.MF,plugin.xml,build.properties三种文件的区别
阅读数:238 评论数:0
跳转到新版页面分类
python/Java
正文
一、MANIFEST.MF
静态文本通常用来作为配置文件,MANIFEST.MF对于Java程序员来说是个常见的文件,它用来标识当前jar包的各种属性,MANIFEST.MF里有一般属性,也有一些和其他体系约定俗称的属性,也可以添加自定义的属性。
Eclipse找到插件jar的时候,会读取其MANIFEST.MF文件,以获取其名称、版本号、依赖关系等,然后完成我们所知道的插件加载过程。也就是说MANIFEST.MF是用来配置插件的元信息的,其属性的名和值需要符合OSGi规范。
该文件的使用发生在插件加载之前。
1、属性
Manifest-Version | 用来定义manifest文件的版本。 |
Created-By | 声明该文件的生产者,例如Created-By: Apache Ant 1.5.1 |
Main-Class | 定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过java -jar x.jar来运行该文件。 |
2、osgi相关属性
Bundle-ManifestVersion | 定义了bundle遵循规范的规则,1表示r3规范,2表示r4和以后的版本。 |
Bundle-SymbolicName:org.activiti.designer.help;singleton:=true | 唯一的bundle名称,相当于系统中的id,singleton表示是否使用单例启动方式。 |
Bundle-Name | bundle名称 |
Bundle-Vendor | 发布商。 |
Bundle-RequireExecutionEnvironment:J2SE-1.6 | 需要的执行环境。 |
Import-Package | 引用包的信息,包括包名称和版本号,包括包名称和版本号,只有引用了这些包,才能让classloader装载。 |
Require-Bundle | 引用的bundle。 |
Export-Package | 对外暴露的package。 |
Bundle-Activator | bundle的钩子类,lifecycle相关,必须实现org.osgi.framework.BundleActivator接口(start和stop方法) |
二、plugin.xml
在一个eclipse plugin的开发中plugin.xml是必须的,在eclipse中打开它时会看到几个tab页:
1、Overview
这里是这个插件工程的一些基本信息,比如插件的ID、版本、名称、编译环境等,我们需要关注的是右下解的Testing,这里提供了我们在开发中运行插件的两种方式:普通和debug模式。
说到运行,我们还有其他的方式:
(1)工程右键-》Run As->Run Configuration
(2)菜单Run->Run As/Debug As
2、Dependencies
这里是这个插件工程需要依赖的各种插件。
3、Runtime
我们需要看到两个地方需要关注:
(1)Exported Packages
这个是你这个插件向外暴露的包,你可以添加需要向外暴露的结构,那么应用你这个插件的其他工程就可以访问你相应的接口。
(2)Classpath
当前插件工程运行依赖的第三方jar包,一般我们把第三方依赖的包放在工程根目录下的lib文件夹内。
4、Extensions/Extensions Points
扩展和扩展点,前者是指引用其他插件的扩展点,后者是当前工程暴露的扩展点。
5、Build
这是编译插件时需要包含的资源。
6、MANIFEST.MF和build.properties
这里其实对前几个tab页中内容自动生成。
7、plugin.xml
这部分内容是比较重要的。
(1)程序的启动进度条
在.product文件里指定“Add a progress bar”以后,时度条可能并未如设想中出现在Splash图片上,解决方法:
>在.product文件同一目录里创建customization.ini文件,包含这样的文本内容:
org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP=true
>在plugin.xml里的org.eclipse.core.runtime.products扩展点下对应product下添加属性preferenceCustomization,值为customization.ini。
>为了让所有的修改生效,可能需要以-clean方式启动你的RCP程序。
>进度条的位置和大小也可直接在plugin.xml里指定,同样是对应product下的属性,分别为startupProgressRect和startupMessageRect,4个数字中前两个是位置,后两个是尺寸。
三、plugin.properties
这使用这个文件,需要在MANIFEST.MF文件定义存储外部插件字符串的属性文件名称:
Bundle-Localization: plugin