目录:
(一)功能部件包装插件
(二)主要功能部件标识产品(但是您有控制权)
(三)功能部件构建插件(如果您允许它们)
(四)平台配置管理
(五)功能部件在运行期标识组件
(六)使用 PDE 构建功能部件的策略
(七)组织功能部件
(八)让 Eclipse (或者任何基于 Eclipse 的产品)以您的方式工作
(九)结束语
(十)参考资料
(十一)关于作者
如果您想开发插件共享给其他人,那么学习如何有效地使用功能部件是最基本的。本文就如何组织功能部件和优化使用插件开发环境来开发功能部件和插件提出了一些建议,同时介绍了定制 Eclipse 行为的高级技术。即便您只是想学习如何设置 Eclipse,以使您可以自定义任何工作空间的初始化属性值,或者是学习如何使用链接文件来管理您添加到 Eclipse 的组件,本文对您来说也将有所帮助。
构建一个插件是很有趣的:您开始编写代码并创建您想要的工具。把插件拷贝到 Eclipse 或一个基于 Eclipse 的产品中的 /plupgins 目录下,这个插件在 Eclipse 运行期环境中就可以使用了。当再一次使用 Eclipse 的时候,插件将被找到,而且经过平台的启动处理,它在运行期配置中将是可用的。
但是谁知道或者关心您的插件加入了进来?用户可以明白您提供的是什么工具吗?他们可以通过 Eclipse 来禁用、修补或者管理您的组件吗?答案显然是否定的。插件本身仅仅是一个插件,而不是与 Eclipse 平台完全集成的组件。
功能部件包装插件
如果没有功能部件,插件是难以驾驭的,通俗地说,不属于功能部件的插件是未被管理的插件。Eclipse 平台的启动过程包括一个配置的步骤。如果一个新的插件被拷贝到 /plugins 目录,或者以其他方式使 Eclipse 在启动的时候可以找到,配置过程会发现它,但只是通过将新插件的 splash 图标闪烁两次来通知您。Eclipse 之所以会发现新的插件,是因为存贮在 /.metadate/.config/platform 中的当前工作区的配置校验和发生了变化;由于您没有向平台提供一个可以引导用户做出配置修改的功能部件,Eclipse 也只能是通过 splash-flash 来提示这一变化。将您的插件打包为一个(或两个)功能部件,您将获得如下好处:
·在 Eclipse 的配置过程中列出您的组件(在 feature.xml 文件中)所要求的先决条件
·使您的组件可以作为 Eclipse 配置的活动部分来管理
·创建标记信息,让使用那些使用运行期环境的用户可以识别您的组件,并通过一个欢迎页面来告知用·户您的功能部件所提供的功能(在关联到您的功能部件的 welcome.xml 文件中)
·用 Eclipse 更新管理器可以对您的组件进行修改
不要等到您的插件开发完成后再打包为功能部件。反映在功能部件定义中的设计结果会影响您如何构建您的插件。例如,大多数的 Eclipse 组件都有 UI 功能部件和核心(不是 UI)功能部件。如果您的插件没有按这种方法进行划分,您可能会马上考虑重新设计它们。功能部件也可以用来自动编译处理被引用的插件。
主要功能部件标识一个产品(但是您有控制权)
虽然功能部件很多,但是当您启动 Eclipse 的时候,只有一个功能部件处于控制之下。这个主要功能部件决定了产品的标识和其他运行期行为,包括确定名字和与运行期平台相关联的图示,以及对所有插件默认属性值的重新定义选项。在后面的定义您自己的全局属性中可以看到,这个功能强大的选项使您可以定制您自己的 Eclipse 设置。
功能部件构建插件(如果您允许它们)
插件开发环境(PDE)可以自动完成为完整的运行期环境准备功能部件和插件的大部分工作。这些基本的步骤在The Java Developer's Guide to Eclipse中也曾作为一个练习涉及到,遵循那个练习您可以构建并标识您已有的插件。可以说如果您有一个功能部件,并且了解 PDE 如何帮助您构建插件和功能部件,您就可以构建一个功能部件,然后让它去同时构建所有相关的插件。构建控制策略(bin.excludes 与 bin.includes)将在后面的使用 PDE 构建功能部件的策略中讨论。这些策略是对 Eclipse.org 文章以及The Java Developer's Guide to Eclipse一书的补充。
平台配置管理
理解功能部件所需要条件有助于理解它们如何对活动配置中可用的内容进行管理。如果是一个刚解压缩的 Eclipse 平台,那么当您启动 eclipse.exe 的时候将会发生:
·找到 Java 运行期环境(JRE)。默认情况下,Eclipse 首先查找 exlipse/jre 子目录。如果没有找到,Eclipse 将查找在系统中注册的 Java 运行期环境。注意:-vm dir-location 参数可以用到指定其他的 JRE。
·配置被作为新的工作区的一部分创建出来。新的工作区通常没有任何的配置,所以您会在真正的 splash 图标之前看到一个图标,通知您安装设置完成。
·处理那些注册到 Eclipse 的功能部件和插件,并创建在后面将会用于检测变化的校验和。这些功能部件和插件或者位于当前的 eclipse/features 目录和 eclipse/plugins 目录下,或者位于由链接文件指定的 eclipse/... 目录结构中。 一旦 Eclipse 启动,活动配置定义将包含/platform.cfg 文件中。
链接文件如何扩展一个 Eclipse 安装设置
如果您已经使用了一段时间的 Eclipse 或者在您的配置中添加了哪怕只是一个新的插件,您肯定知道 Eclipse 是到 eclipse/features 目录和 eclipse/plugins 目录下去查找功能部件和插件的。不过您是否知道,Eclipse 也会到文件系统的其他位置去查找功能部件和插件?如果在 eclipse/links 目录下存在格式正确的链接文件,那么这些文件会被处理,相关联的功能部件和插件(包括没有相关功能部件的插件)在运行期配置中都会是可用的。
一个链接文件只是一个命名为 id.link 的任意文件,在这里 id 通常是正在被引用的根功能部件的 id。您可以在链接文件目标中定义不只一个功能部件,并且名字命名为 foo.link 也是可以接受的。给出一个包含如下内容的链接文件:
Eclipse 将会到指定的目录下去查找 eclipse/features 目录和 eclipse/plugins 目录,看是否有合法的功能部件和(或)插件。也就是说,目标目录必须包含一个 /eclipse 目录。如果找到,附加的功能部件和插件在运行期配置是将是可用的,如果链接文件是在工作区创建之后添加的,附加的功能部件和插件会作为新的配置变更来处理。
使用链接文件来定制您自己的 Eclipse 安装设置的策略将在本文稍后的使用链接文件管理 Eclipse 安装设置中进行讨论。
配置更新――添加一个功能部件
如果一个新的功能部件及所用到的插件已经添加到已有的 /features 目录和 /plugins 目录下,或者通过一个链接文件注册到 Eclipse,校验和的变化将触发配置处理过程。这个处理在一个简单的 splash-flash 之后进行。新的功能部件作为一个配置变更来处理,并且显示出一个配置变更的对话框。
例如,如果您打开一个标准的 Eclipse 解压缩环境的工作区,而后找到了 Eclipse Examples,您把它解压缩到与 Eclipse 同样的目录树中或者添加了一个链接文件来指明这个例子解压缩到了何处,将会出现一个如图1所示的对话框。
图 1. 配置变更对话框
所以,如果您看到类似于这样的一个对话框,那是因为在您运行一个安装配置程序的时,您自己或者其他人修改了 Eclipse 的配置,而平台发现了新的或者更新过的可用功能部件。如果条目可以被选中,您可以将这个变化添加到您当前的配置中。如果条目被禁用,说明存在配置上的问题,这个功能部件不能被添加进来。按下 Error Details 按钮可以查看有关配置问题的信息。
配置管理注解:
·存在未决变更并不意味着您不得不马上接受它们,在相当一段时间内您完全可以不去理会它们,只需要取消对条目的选择,并点击 Finish即可。要在以后再添加它们,您可以选择 Help > Software Updates > Pending Changes... 来再次打开那个对话框。
·已经被接受的变更在以后还可以禁用。打开 Install/Update 透视图,在 Install Configuration 视图中选中功能部件,然后在 Preview 视图中选择 Disable 。禁用的功能部件还可以通过类似的步骤启用。在 Install Configuration 视图中点击 Show Disabled Features 图标可以显示被禁用的功能部件。
(一)功能部件包装插件
(二)主要功能部件标识产品(但是您有控制权)
(三)功能部件构建插件(如果您允许它们)
(四)平台配置管理
(五)功能部件在运行期标识组件
(六)使用 PDE 构建功能部件的策略
(七)组织功能部件
(八)让 Eclipse (或者任何基于 Eclipse 的产品)以您的方式工作
(九)结束语
(十)参考资料
(十一)关于作者
如果您想开发插件共享给其他人,那么学习如何有效地使用功能部件是最基本的。本文就如何组织功能部件和优化使用插件开发环境来开发功能部件和插件提出了一些建议,同时介绍了定制 Eclipse 行为的高级技术。即便您只是想学习如何设置 Eclipse,以使您可以自定义任何工作空间的初始化属性值,或者是学习如何使用链接文件来管理您添加到 Eclipse 的组件,本文对您来说也将有所帮助。
构建一个插件是很有趣的:您开始编写代码并创建您想要的工具。把插件拷贝到 Eclipse 或一个基于 Eclipse 的产品中的 /plupgins 目录下,这个插件在 Eclipse 运行期环境中就可以使用了。当再一次使用 Eclipse 的时候,插件将被找到,而且经过平台的启动处理,它在运行期配置中将是可用的。
但是谁知道或者关心您的插件加入了进来?用户可以明白您提供的是什么工具吗?他们可以通过 Eclipse 来禁用、修补或者管理您的组件吗?答案显然是否定的。插件本身仅仅是一个插件,而不是与 Eclipse 平台完全集成的组件。
功能部件包装插件
如果没有功能部件,插件是难以驾驭的,通俗地说,不属于功能部件的插件是未被管理的插件。Eclipse 平台的启动过程包括一个配置的步骤。如果一个新的插件被拷贝到 /plugins 目录,或者以其他方式使 Eclipse 在启动的时候可以找到,配置过程会发现它,但只是通过将新插件的 splash 图标闪烁两次来通知您。Eclipse 之所以会发现新的插件,是因为存贮在 /.metadate/.config/platform 中的当前工作区的配置校验和发生了变化;由于您没有向平台提供一个可以引导用户做出配置修改的功能部件,Eclipse 也只能是通过 splash-flash 来提示这一变化。将您的插件打包为一个(或两个)功能部件,您将获得如下好处:
·在 Eclipse 的配置过程中列出您的组件(在 feature.xml 文件中)所要求的先决条件
·使您的组件可以作为 Eclipse 配置的活动部分来管理
·创建标记信息,让使用那些使用运行期环境的用户可以识别您的组件,并通过一个欢迎页面来告知用·户您的功能部件所提供的功能(在关联到您的功能部件的 welcome.xml 文件中)
·用 Eclipse 更新管理器可以对您的组件进行修改
不要等到您的插件开发完成后再打包为功能部件。反映在功能部件定义中的设计结果会影响您如何构建您的插件。例如,大多数的 Eclipse 组件都有 UI 功能部件和核心(不是 UI)功能部件。如果您的插件没有按这种方法进行划分,您可能会马上考虑重新设计它们。功能部件也可以用来自动编译处理被引用的插件。
主要功能部件标识一个产品(但是您有控制权)
虽然功能部件很多,但是当您启动 Eclipse 的时候,只有一个功能部件处于控制之下。这个主要功能部件决定了产品的标识和其他运行期行为,包括确定名字和与运行期平台相关联的图示,以及对所有插件默认属性值的重新定义选项。在后面的定义您自己的全局属性中可以看到,这个功能强大的选项使您可以定制您自己的 Eclipse 设置。
功能部件构建插件(如果您允许它们)
插件开发环境(PDE)可以自动完成为完整的运行期环境准备功能部件和插件的大部分工作。这些基本的步骤在The Java Developer's Guide to Eclipse中也曾作为一个练习涉及到,遵循那个练习您可以构建并标识您已有的插件。可以说如果您有一个功能部件,并且了解 PDE 如何帮助您构建插件和功能部件,您就可以构建一个功能部件,然后让它去同时构建所有相关的插件。构建控制策略(bin.excludes 与 bin.includes)将在后面的使用 PDE 构建功能部件的策略中讨论。这些策略是对 Eclipse.org 文章以及The Java Developer's Guide to Eclipse一书的补充。
平台配置管理
理解功能部件所需要条件有助于理解它们如何对活动配置中可用的内容进行管理。如果是一个刚解压缩的 Eclipse 平台,那么当您启动 eclipse.exe 的时候将会发生:
·找到 Java 运行期环境(JRE)。默认情况下,Eclipse 首先查找 exlipse/jre 子目录。如果没有找到,Eclipse 将查找在系统中注册的 Java 运行期环境。注意:-vm dir-location 参数可以用到指定其他的 JRE。
·配置被作为新的工作区的一部分创建出来。新的工作区通常没有任何的配置,所以您会在真正的 splash 图标之前看到一个图标,通知您安装设置完成。
·处理那些注册到 Eclipse 的功能部件和插件,并创建在后面将会用于检测变化的校验和。这些功能部件和插件或者位于当前的 eclipse/features 目录和 eclipse/plugins 目录下,或者位于由链接文件指定的 eclipse/... 目录结构中。 一旦 Eclipse 启动,活动配置定义将包含/platform.cfg 文件中。
链接文件如何扩展一个 Eclipse 安装设置
如果您已经使用了一段时间的 Eclipse 或者在您的配置中添加了哪怕只是一个新的插件,您肯定知道 Eclipse 是到 eclipse/features 目录和 eclipse/plugins 目录下去查找功能部件和插件的。不过您是否知道,Eclipse 也会到文件系统的其他位置去查找功能部件和插件?如果在 eclipse/links 目录下存在格式正确的链接文件,那么这些文件会被处理,相关联的功能部件和插件(包括没有相关功能部件的插件)在运行期配置中都会是可用的。
一个链接文件只是一个命名为 id.link 的任意文件,在这里 id 通常是正在被引用的根功能部件的 id。您可以在链接文件目标中定义不只一个功能部件,并且名字命名为 foo.link 也是可以接受的。给出一个包含如下内容的链接文件:
path=E:/Eclipse-2.1.1/installedFeatures/Examples |
Eclipse 将会到指定的目录下去查找 eclipse/features 目录和 eclipse/plugins 目录,看是否有合法的功能部件和(或)插件。也就是说,目标目录必须包含一个 /eclipse 目录。如果找到,附加的功能部件和插件在运行期配置是将是可用的,如果链接文件是在工作区创建之后添加的,附加的功能部件和插件会作为新的配置变更来处理。
使用链接文件来定制您自己的 Eclipse 安装设置的策略将在本文稍后的使用链接文件管理 Eclipse 安装设置中进行讨论。
配置更新――添加一个功能部件
如果一个新的功能部件及所用到的插件已经添加到已有的 /features 目录和 /plugins 目录下,或者通过一个链接文件注册到 Eclipse,校验和的变化将触发配置处理过程。这个处理在一个简单的 splash-flash 之后进行。新的功能部件作为一个配置变更来处理,并且显示出一个配置变更的对话框。
例如,如果您打开一个标准的 Eclipse 解压缩环境的工作区,而后找到了 Eclipse Examples,您把它解压缩到与 Eclipse 同样的目录树中或者添加了一个链接文件来指明这个例子解压缩到了何处,将会出现一个如图1所示的对话框。
图 1. 配置变更对话框
所以,如果您看到类似于这样的一个对话框,那是因为在您运行一个安装配置程序的时,您自己或者其他人修改了 Eclipse 的配置,而平台发现了新的或者更新过的可用功能部件。如果条目可以被选中,您可以将这个变化添加到您当前的配置中。如果条目被禁用,说明存在配置上的问题,这个功能部件不能被添加进来。按下 Error Details 按钮可以查看有关配置问题的信息。
配置管理注解:
·存在未决变更并不意味着您不得不马上接受它们,在相当一段时间内您完全可以不去理会它们,只需要取消对条目的选择,并点击 Finish即可。要在以后再添加它们,您可以选择 Help > Software Updates > Pending Changes... 来再次打开那个对话框。
·已经被接受的变更在以后还可以禁用。打开 Install/Update 透视图,在 Install Configuration 视图中选中功能部件,然后在 Preview 视图中选择 Disable 。禁用的功能部件还可以通过类似的步骤启用。在 Install Configuration 视图中点击 Show Disabled Features 图标可以显示被禁用的功能部件。