Eclipse RCP:MANIFEST.MF,plugin.xml,build.properties三种文件的区别

阅读数:153 评论数: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




相关推荐

Eclipse RCP是Rich Client Platform,即富客户平台,使用者可以使用Java来创建桌面程序,这些应用程序能够得到Eclipse的底层支持。 1、下载</p

运行时,Eclipse 应用的结构是通过一个application model来描述的。这个application model包含了应用中独立的元素和它们的结构关系。 每个mode

每个plug-ins可以通过下面方式作用于application model: (1)static contributions 通过文件,这些扩展称为fragment

1、@javax.inject.Inject 定义在JSR330中 ,可以写在字段、构建函数或方法上,Eclipse 框架试图把相关的对象注入到字段或实例的参数上。

一个Eclipse应用在启动过程时会创建一个实现IEclipseContext接口的对象,这个对象称为Eclipse context。 这个context和Map数据结构类似,但和

1、@PostConstruct 当一个类的构造函数执行,字段和方法都注入后执行。 2、@PreDestroy 类被destroyed前执行,可以用来清

Eclipse application model允许你指定command和handlers。 command和handlers model element的使用是可选的,你可以使

一个Eclipse application的配置包括icons、splash screen和plug-ins。 一个product总是指向一个application class,对

一个feature可以理解为一个逻辑单元,描述了一组plug-in和其它features。它也有name、version number和license information。 f

SWT全称是Standard Widget Toolkit。 Display和Shell Display和Shell类是SWT应用的主要组件,org.eclips