3.5.2 定义目标平台

我们推荐使用前面章节介绍的预定义目标,因为它会让后面添加目标时变得更简单。但有些时候,你需要为自己的工程定义自己的目标。本节就描述了如何来定义目标。如果你已经完成预定义目标并开始运行了,请跳过本节,或将本节作为以后查阅的参考。

目标平台就是一系列bundle,以及来自各种位置的多个特性。其内容来源包括如下几部分。

目录(Directories)——指定一个目录加入到目标中,该目录下能找到的所有bundle和特性都会被加入到目标中。通过从Web上(例如,从eclipse.org)下载归档文件,可以获得包含bundle的目录。

安装(Installations)——指定一个已经存在的Eclipse安装中的目标,其中的所有元素都会被添加到目标平台中,包含链接的文件夹、快捷方式(drop-in)以及其他组成该安装的bundle和特性。

特性(Features)——增加特性与增加目录相似,但是需要从目录下找到的特性中选择一个子集。被选择的特性所对应的bundle也会被加入目标。

软件站点(Software sites)——在全世界有许多软件仓库。增加一个软件站点,你将辨别出加载的bundle和特性来自哪个软件仓库。

预定义的Toast目标在其定义中使用了目录和软件站点。接下来,我们将带你了解一些用于创建目标平台的步骤。在前面章节的侧边栏中,我们讨论了在工作空间中创建目标。在此,我们将阐明其方式。如果你不希望创建于此,可以根据自己的需求设置目标内容,但是目标定义的文件仍然会存在与工作空间中。

  • 使用File > New > Project… > General > Project创建一个简单工程。我们已经将目标工程命名为为ToastTarget

  • 使用File > New > Other > Plug-in Development > Target Definition向导创建一个目标平台定义。

  • 输入目标文件的名称,并将其放置于新的工程中。

  • 注意在向导的底部,有一些用于初始化的新目标的选项。选中Nothing选项,因为我们要从零开始构建此目标。在其他场景下,你可能希望使用其他地方的内容来为新目标做好准备。

  • 点击Finish来完成向导,并在新的目标定义上打开目标编辑器,如图3-3所示。

图3-3 目标定义编辑器

在编辑器中,你可以为目标定义添上一个有用的名称,但是真正引人关注的部分是Location。为了Toast目标,我们将需要为delta包增加一个目录,为Equinox和RCP SDKs增加一个软件站点。首先让我们来做delta包。

  • 从Eclipse工程的下载站点http://download.eclipse.org/eclipse上下载delta包。在给出的选项中选择Latest Release。(如3.5.1所述。)

  • 在下载页面中,从左边导航栏中选择Delta Pack。页面将滚动到delta包的下载链接。请注意,这里只有一个链接,很显然,它包含了平台依赖的所有部分。选中链接并保存归档文件到本地驱动器上合适的位置。

  • 下载完成后,在目标工程里创建一个名为delta.pack的新文件夹,导入下载的内容到文件夹File > Import… > General > Archive File中。

  • 在目标编辑器的Definition页面里,点击Add…并选择Directory。点击Next

  • Add Content对话框中,点击Variables…并从列表中选择workspace_loc。现在,添加工作空间的路径到delta包的内容里。例如,假定你的工程命名为ToastTarget,其位置应该如下所示:${workspac e_loc}/ToastTarget/delta.pack/eclipse

接下来,我们将增加一个软件站点并获取Equinox和RCP SDKs。

  • 在目标编辑器的Definition页面,点击Add…,并选择Software Site。点击Next

  • 在随后的Add Software Site向导页面,在Work with下拉框中选择Galileo。如果存在一个更新的发布仓库可用,你便可以直接使用。如果没有你所期望的站点,则点击Add…按钮,并输入该站点的Name和URL Location。例如,Galileo的站点是http://download.eclipse.org/releases/galileo

  • 站点一旦被选中,向导的内容区域将被填充(如图3-4所示)。通过展开EclipseRT Target Platform Components分类,或者在内容之上的过滤区域输入它的名称,都可以选中Equinox Project SDK选项。

  • 为了添加RCP SDK,你需要取消对内容区域下Group by Category复选框的选择,然后在过滤区域输入RCP。选择Eclipse RCP SDK

多选或许不能正常工作

在Eclipse的某些版本中有一个bug——使用过滤器时会清空当前的选择。你可能需要单独添加SDKs,或者不使用过滤器。

  • 注意:必须取消对向导左下方“Include required software”复选框的选择。如果不这么做,会导致目标臃肿,对于Toast的场景来说,可能会导致不能工作。

图3-4 Galileo软件站点内容

点击Finish后,PDE随即解析该目标。因为要从软件站点下载相关内容,所以将占用一段时间。解析完成后,请看一下目标编辑器中的Content页面。你将看到与图3-5所示的编辑器相似的东西。请注意,读者可以对测试相关的bundle进行补充,以此作为进一步的练习。基本上,你只需添加一个目录到目标定义和目标中,然后收集想要的bundle和特性。一旦完成目标定义,保存该文件并点击右上方的Set as Target Platform

图3-5 Toast目标内容

目录