3.5.1 预定义的目标

示例管理器随带了一个便利的目标,包含上述所列的所有组件。请执行如下步骤来加载预定义目标。

  • 如图3-1所示,使用示例管理器工具栏上的Load Target入口来完成初始化目标的加载。当目标内容被拷贝到工作空间时,将显示一个进度对话框。进度完成后,将创建一个名为ToastTarget的工程,包含目标定义和其他目标内容。

  • 打开Target Platform首选项页面,Window>Preferences>Plug-in Development>Target Platform,找到名为Toast Target的入口。选中该入口旁边的复选框,点击Apply或者OK来使用该Toast目标。

不要通过目标编辑器设置目标

目标被定义在.target文件中。Toast目标被定义在toast.target文件中,该文件存在于刚刚加载的ToastTarget工程中。我们将在下节讨论如何编辑该文件,但是这里你需要明白在Galileo SR1(2009年9月)的PDE中有一个bug。

打开一个目标文件,目标编辑器会尝试解析它的内容。为此,它会打开在目标中的所有bundle。Toast目标引用了eclipse.org中的一些远程软件仓库,从而可以使用其中的一些bundle。对网络来说,这样导致的结果是当目标文件被打开后,PDE开始从远程服务器下载目标的组成成分,这些内容可能数以兆计。在很多场景下这是个优势——对内容预缓存。然而,会有一个bug存在。

当编辑器正在解析时,不要在目标编辑器中点击Set as target platform链接。否则,会导致紊乱并最终无法加载目标定义。

如果误点了该链接,将弹出一个报告锁定的对话框,也可能弹出一个同步错误的对话框。当这种现象出现时,请关闭目标编辑器并重启Eclipse。然后按照步骤使用目标首选项来加载目标,也可以打开编辑器,在点击链接之前等待其完成解析。

工作空间中的目标

本节描述的工作流程,会导致Toast目标中至少有一部分会存在于工作空间里的某一工程中。从某种意义上说,这很奇怪——目标难道不是针对整个工作空间吗?!将目标的内容作为资源,并可放入源代码控制和共享,反倒带来很大的便利。在本书示例开发以及产品团队的工作中,在工作空间中创建一个工程,并通过软件配置管理(SCM)系统来控制其内容和目标定义是非常普遍的做法。团队新成员可以很容易地签出该目标。当某个成员改变目标,其他人只需要更新即可。以上是对随后章节描述的目标平台软件站点设施的补充。

目录