Eclipse不是一个一整块的程序,是一个包含插件载入器、由数百个插件包围的小内核。该小内核是OSGIR4规范的一个实现、为插件执行提供了环境。每一个插件以结构化的方式在整体中发挥作用,可能依赖于由其他插件提供的服务,也可能提供其他插件需要的服务。
这种模块化的设计让Eclipse自身分解为不同的功能块。这些功能块能更容易地被重用于创建超出Eclipse原始开发人员视野之外的应用程序。创建客户端程序的最小插件集称为Eclipse富客户端平台(EclipseClientPlatform,RCP)。当Eclipse基础结构也正被用于创建服务端,Eclipse基础结构也被称为Eclipse应用程序框架(EclipseApplicationFramework,EAF)。
每个插件的行为都是位于代码中,然而,插件的依赖项和服务都是在MANIFEST.MF和plugin.xml文件中声明的。这种结构从当需要时的角度简化了插件代码的延迟载入,因此也减少了启动时间和Eclipse的内存占用。
在启动时,插件载入器为每一个插件扫描MANIFEST.MF和Plugin.xml文件,然后创建一个包含该信息的结构。该结构将占用一定的内存空间,但它允许载入器可以更快地查找所需插件,而且它比一直载入所有插件的所有代码占用的空间要小得多。
一个典型的Eclipse插件包含以下类型文件:
JAVA类-组成插件的实际JAVA类,位于插件JAR文件的标准JAVA目录/包结构中。
图标-图像文件一般位于icons或images目录中,并在plugin.xml中被插件不同的类引用。图像文件和其他静态资源文件作为插件的一部分分发,可以通过启动器中的方法访问。
META-INF/MANIFEST.MF-描述插件运行时特性的文件。这些特性包含标识符、版本和插件依赖项。
Plugin.xml-描述扩展和扩展点的XML文件
二、构建插件产品Eclipse的向导功能作为最基础的功能成为了开发人员建立工程的最便捷的方式。构建一个属于自己的插件产品也可以从Eclipse的向导开始。Eclipse的向导为开发者提供了一个叫做Plug-inDevelopment的目录。插件产品的第一个工程可以从”Plug-inProject”开始。选择Plug-inProject之后需要开发者选择插件产品的名称和适用于最低的Eclipse适用版本,默认是从3.5版本开始。我们以一个向导插件为例介绍如何构建一个完整的插件产品,插件工程命名为