打包插件

来源:互联网 发布:彩票统计分析软件 编辑:程序博客网 时间:2024/05/17 20:25
跳转到主要内容
  • 登录 (或注册)
  • 中文
  • PHOTO [userid]
  • IBM®

这是您第一次登陆到 developerWorks,已经自动为您创建了您的概要文件。 选择您概要文件中可以公开的信息的信息(如姓名、国家/地区,以及公司),这些信息同时也会与您所发布的内容相关联。您可以随时更新您的 IBM 账号。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

My developerWorks:

  • 我的首页
  • 我的概要信息
  • 我的社区
  • 设置

我的通知:

  • {[num_notify] 个新通知}([num_notify] 个新通知)
  • {[num_invite] 个网络请求}([num_invite] 个网络请求)
  • 关闭 [x]

选择语言:

  • English
  • 中文
  • 日本語
  • Русский
  • Português (Brasil)
  • Español
  • Việt
  • 关闭 [x]
  • IBM 主页
  • 解决方案
  • 软件
  • 支持门户
  • 产品文档
  • Redbooks(英文)
  • 关闭 [x]

技术主题

  • Agile transformation
  • AIX and UNIX
  • Big data
  • Cloud computing
  • IBM i
  • Information management
  • Java technology
  • Linux
  • Lotus
  • Mobile development
  • Open source
  • Rational

    软件下载

    • Information management
    • Lotus
    • Rational
    • Tivoli
    • WebSphere
    • 关闭 [x]

    社区

    • 我的首页
    • 概要信息
    • 群组
    • 博客
    • 论坛
    • Wiki
    • 活动
    • 关闭 [x]

    技术讲座

    • 技术讲座
    • 多媒体课堂
    • 网络广播(英文)
    • 查找活动(技术讲座,网络广播,会议等)(英文)
    • 关闭 [x]
  • developerWorks 中国
  • Open source
  • 文档库

创建一个 Eclipse 游戏插件,第 4 部分: 打包、测试和发布

Peter Nehrer (mailto:pnehrer@ecliptical.ca?subject=打包、测试和发布), 自由作家, Freelance Developer
Peter Nehrer 是生活在 Toronto, Ontario 的一位软件顾问。他擅长于基于 Eclipse 的企业解决方案和 J2EE 应用程序。他的专业兴趣包括开发工具、模型驱动的软件开发和信息共享。他是几个与 Eclipse 相关的开放源码项目的创建者。他是 IBM 认证的 XML 和相关技术 Solutions Developer。他拥有 Amherst 的 University of Massachusetts 的计算机科学硕士学位。

简介:  虽然大多数用户都把 Eclipse 当成构建 Java ™ 应用程序的集成开发环境,但实际上它是更基本的东西。Eclipse 是一个用于构建插件的框架,允许扩展其功能去解决几乎任何问题 —— 只要利用一套 API 和现成可用的库。在这份四个部分的 “创建 Eclipse 游戏插件” 教程系列中,将解决大多数程序员每天都会遇到的一个迫切问题:如何不用切换应用程序就抽出时间玩一个迅速的视频游戏,还能让它不太明显。教程中将开发一个简单的游戏,读取进入视图的虫子,并把它们打爆。游戏将在 Eclipse 中作为插件运行,这个游戏演示了如何编写 Eclipse API,如何使用 Standard Widget Toolkit、Open Graphics Library 和 Lightweight Java Games Library。第 4 部分演示如何使用自动化过程构建和测试插件,最后对它进行打包以便发布。

查看本系列更多内容

发布日期:  2006 年 8 月 07 日
级别: 中级

访问情况 : 6333 次浏览

1 star2 stars3 stars4 stars5 stars 平均分 (共 2 个评分 )

构建、打包和发布

现在,我们不但可以在从开发环境直接启动的运行时工作台中运行插件,还可以直接在 IDE 中对它进行单元测试。但是,最终目标是能够在开发环境中直接玩游戏(而不是在从它启动的运行时工作台中)。还希望能够与别人分享我们的成果。为此,需要对插件进行打包以便发布。

Eclipse 为插件的构建、打包和发布提供了几个选项。

导出插件

在基于 Eclipse Platform 的产品(比如 IDE)中安装插件最快、最容易的方式是,使用 PDE 提供的一个向导导出它(见图 3):

  1. 右击插件项目并选择 Export
  2. 在 Export 向导对话框中,选择 Plug-in Development 下面的 Deployable plug-ins and fragments 并点击Next
  3. 确保选择正确的插件(com.ibm.eclipse.shootout)。
  4. 在 Destination 选项卡上,输入 Eclipse 安装位置的路径(包括 Eclipse 目录)。
  5. 在 Options 选项卡上,选择 Package plug-ins as individual JAR archives 选项。这会使插件导出到 JAR 中,而不是目录中。点击Finish

图 3. 导出插件
导出插件

在重新启动 IDE 时,会发现 Shootout 视图出现了,我们可以在工作的间隙玩游戏了!


使用 Ant 构建插件

您可能已经注意到了,导出向导提供的一个选项允许将导出过程保存到 Ant 文件中。但是,这似乎是无效的(脚本文件几乎是空的)。实际上,PDE 提供了另一种为构建插件生成 Ant 脚本的方法:右击 plugin.xml 文件并选择PDE Tool > Create Ant Build File。这会创建一个 build.xml 文件,可以调用其中的几个目标来对插件进行构建和打包:

  • build.jars [默认] —— 构建插件的所有 JAR
  • build.update.jar —— 将插件构建成一个适合通过更新站点进行发布的 JAR(稍后将进行更多的介绍)
  • zip.plugin —— 创建一个 zip 文件,其中包含属于这个插件的所有文件(例如,可能有多个 JAR),包括它的源代码(在 src.zip 中)
  • clean —— 清除在构建期间使用的临时文件
  • refresh —— 对插件目录进行刷新以便与最新的文件系统内容同步

注意,许多这些目标使用定制任务,要求 Eclipse 正在运行。要想调用构建脚本,应该在与 IDE 相同的 JRE 实例中运行它。

另外注意,在默认情况下,产生的文件放在插件项目的根中。

正如我们看到的,这种方式提供了一定的自动化程度。一旦在 Ant 构建脚本中表示了过程,就可以像调用其他任何 Ant 脚本一样调用它(只要不是在 Eclipse 运行时中进行)。(“参考资料” 中的一篇文章描述了如何对 Eclipse 使用 Ant。)实际上,可以使用 Eclipse 提供的一个应用程序在 Eclipse 运行时中调用 Ant 脚本,而不需要正在运行的工作台。例如,下面的命令从 eclipse 目录调用 Ant:

java -cp startup.jar -application org.eclipse.ant.core.antRunner

请记住一点:构建脚本比较直接化(只有少量属性放在属性文件中),在插件的内容改变时常常需要重新生成构建脚本。但是,PDE 提供了一组工具(Ant 任务),可以为插件自动生成构建脚本。在讨论构建自动化时将详细讨论这些工具。


使用特性管理插件

如果我们要实现的目标仅仅是将插件安装在 Eclipse IDE 中,那么已经完成了。但是,如果希望临时禁用它并将它从配置中排除,那么应该怎么办?目前,这是不可能的;必须进入 eclipse/plugins 目录并删除插件 JAR。

为了更好地管理插件的配置,Eclipse 使用特性的概念。Eclipse 特性是非功能性组件,代表产品配置中的一个或多个插件。特性对于产品发挥作用并非绝对必要。在 Eclipse 中,所有功能封装在插件中,它们并不依赖于任何特性。不由特性表示的插件(比如在前一节中导出到 IDE 中的插件)称为不受管理的(unmanaged)

与插件相似,特性由一个称为 feature.xml 的清单文件描述。与插件一样,它们由一个 ID 惟一地标识,而且是有版本的(通常采用同样的 major.minor.update[.qualifier] 形式)。

特性清单最重要的部分是这个特性代表的插件集(及其版本)。安装版本较新的特性就会禁用以前的版本(以及它代表的所有插件版本)。另外,特性还可以指定它的插件所依赖的一组插件。如果试图安装依赖项没有得到满足的特性,那么就会失败。

特性还可以组成层次结构。一个特性可以包含其他特性,这意味着在安装它的时候会安装它包含的所有特性。这对于大型应用程序是有用的,大型应用程序可能由多个特性组成,可以将这些特性组合成许多种配置。

Eclipse IDE 由几个特性组成。为了看到它们的详情,打开 About 对话框(Help > About...)并点击Feature details 按钮。要管理(安装、禁用)特性,应该选择 Help > Software Updates > Manage Configuration。这会显示 Eclipse IDE 知道的所有安装位置以及在每个位置上找到的特性。


创建特性项目

为了将插件与特性关联起来,必须创建一个特性项目:

  1. 从主菜单选择 File > New > Project。在 New 向导对话框中,在 Plug-in Development 下面选择 Feature Project,然后点击Next
  2. 给项目命名。一种好惯例是使用它的 ID,但是正如以后会发现的,这可能会与插件的项目名相混淆。因此,我们加上后缀 “-feature”:com.ibm.eclipse.shootout-feature
  3. 给特性分配 ID。在理想情况下,它与主插件的 ID 匹配:com.ibm.eclipse.shootout。这是因为特性使用 “branding” 插件作为各种 brand 相关信息(在本教程中没有使用)的来源。另外,特性也可以显式地指定一个插件作为 branding 插件。
  4. 特性的名称将在配置过程中使用。它的版本至少在最初应该与插件的版本匹配,但是可以使用不同的版本策略。点击 Next
  5. 选择新特性中包含的插件 —— com.ibm.eclipse.shootout —— 并点击 Finish

当新特性的 Manifest Editor 打开时(见图 4),会看到其中填写了来自 Information 选项卡的默认信息。应该将它更新为适合自己项目的信息(在本教程中,保持不变)。


图 4. Feature Manifest Editor
Feature Manifest Editor

在 Plug-ins 选项卡中,会看到我们的插件包含在这个特性中。如果看到插件的版本是 0.0.0,那么不必担心。这只意味着采用构建特性时插件的当前版本,从而反映最新的信息。

最后一件工作是更新依赖项。在 Dependencies 选项卡上,点击 Compute。这会检查包含的插件的依赖项并自动填充列表。可以选择 Recompute when feature plug-ins change,但是手工检查这些依赖项一般来说是好做法。列表可能指出有问题,例如缺少插件,这会导致安装特性失败。


导出特性

配置了特性之后,就可以使用 PDE 提供的向导将它导出到 Eclipse 中:

  1. 右击特性项目并选择 Export
  2. 在 Export 对话框中,选择 Plug-in Development 下面的 Deployable features。点击 Next
  3. 确保选择正确的特性。
  4. 在 Destination 选项卡上,输入 Eclipse 安装位置的完整路径(包括 eclipse 目录)并点击 Finish

为了确认导出已经生效了,重新启动 IDE 并选择 Help > Software Updates > Manage Configuration。Shootout 特性应该会显示在默认安装位置下。

除了其他选项之外,这个向导还可以将特性导出到 zip 文件中(这个文件具有相同的内容和目录结构)。正如我们看到的,这是对插件进行发布的选项之一。这个向导还允许将过程导出到 Ant 构建脚本,但是与 Plug-in Export 向导的情况一样,产生的构建脚本是无效的。


使用 Ant 构建特性

PDE 为构建插件而提供的 Ant 脚本生成机制也适用于特性。右击 feature.xml 文件并选择 PDE Tools > Generate Ant Build File。为特性生成的目标与为插件生成的目标相似。除了清除和刷新项目之外,还可以构建 JAR(使用 build.jar 目标)、构建用于更新站点的 JAR(build.update.jar)和构建发布 zip(zip.distribution)。一个差异是,默认目标是 build.update.jar 而不是 build.jar。因为特性实际上是由插件组成的,所以这些目标中的大多数会委托给包含的每个插件执行(比如构建 JAR 就会构建所有插件的 JAR)。注意,在为特性生成 Ant 脚本时,会自动地为包含的所有插件生成 Ant 脚本。


发布特性

有好几个用于发布特性的选项,尤其是在插件由特性表示的情况下。通常,最容易的方法是建立二进制发布存档(即,导出特性或使用 zip.distribution 目标构建它所产生的 zip 文件)。应该指示用户将文件解压到 Eclipse 目录(名为 eclipse 的目录),因为这个 zip 文件已经包含插件和特性的目录项。

许多产品在发布时带有一个完善的安装程序。Eclipse Help 提供了如何创建这样的安装程序的一般性说明(没有提供安装程序特定的说明,因为安装程序的选择取决于开发人员)。请参考Reference > Other reference information 下面 Platform Plug-in Developer Guide 中的 How to write an Eclipse Installer。

还可以用更新站点方式发布特性。实际上,Eclipse.org 就包含已发布项目的更新站点。更新站点通常是一个可从 Web 访问的目录,其中包含可以使用 Eclipse Configuration Manager 下载的所有特性和插件 JAR。尽管这种方法对于初始发布不太方便(需要通过好几次点击才能将 Configuration Manager 指向新的更新站点),但是对于为产品的现有用户提供更新很方便。


创建更新站点

在 PDE 中可以很容易地创建更新站点。从主菜单选择 File > New > Project 并在 Plug-in Development 下面选择 Update Site Project。点击Next 并给项目命名(例如 updates)。点击 Finish。在 Site Manifest Editor 的 Site Map 页面中,使用Add Feature 按钮添加特性。点击 Build 按钮,就可以实际构建这个更新站点所需的所有文件(见图 5)。完成之后,就可以将整个项目内容上传到我们公布的更新站点 URL。


图 5. 更新站点编辑器
更新站点编辑器

如果需要为自己的特性提供更新,那么需要确保在特性的初始发布中已经包含关于更新站点的信息。具体地说,应该在特性的清单中提供更新站点的 URL(Overview 页面中的 URL 属性)。这样的话,用户就可以定期检查任何特性更新。

4 页,共10 | 前一页 | 后一页

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Open source
ArticleID=152556
TutorialTitle=创建一个 Eclipse 游戏插件,第 4 部分: 打包、测试和发布
publish-date=08072006
author1-email=pnehrer@ecliptical.ca
author1-email-cc=
url=file:///C:/Documents%20and%20Settings/Administrator/桌面/创建一个%20Eclipse%20游戏插件,第%204%20部分%20打包、测试和发布.mht

内容

  • 开始之前
  • 概述和设置
  • 对插件进行单元测试
  • 构建、打包和发布
  • 构建的自动化
  • 自动化测试
  • 结束语
  • 下载
  • 参考资料
  • 关于作者

4 页,共10 | 前一页 | 后一页

原创粉丝点击