在团队环境中使用二进制模块优化 Rational Application Developer

本文介绍如何以源代码形式保存一些项目,并以二进制的形式保存其他项目,从而提高您在 IBM® Rational® Application Developer 中执行的日常操作的速度。

Gary Karasiuk (karasiuk@ca.ibm.com), Rational Application Developer 性能分析师, IBM Toronto Lab

Gary KarasiukGary Karasiuk 是 IBM 多伦多实验室的 Rational Application Developer 性能分析师。您可以通过 karasiuk@ca.ibm.com 联系 Gary。



Jason Sholl (jsholl@us.ibm.com), 软件工程师, IBM

Jason ShollJason Sholl 在 IBM Raleigh Laboratory 从事于 Rational Java 2 Platform、Enterprise Edition (J2EE) 工具的工作。



2007 年 11 月 01 日

随着您的应用程序的增长,在您的工作区中以源代码的形式保存整个应用程序可能是不实际或不值得的。大型的工作区可以包含一百个以上的项目。每个开发人员每天都需要变更每个项目是非常不可能的。较好的方法是只将您打算变更的项目或模块以源代码的形式保存,而将您要使用的项目或模块以二进制的形式保存。这样做将大大减少 IBM® Rational® Application Developer 的内存占用,并且大大加速许多公共的开发任务。您仍旧能够看到二进制项目中的源代码,并且可以进行大部分操作,例如您常常依赖的 Open Declaration(F3)。

举例来说,当整个工作区是源代码形式时,我们使用的一个客户工作区要花费 27 分钟构建。当大部分模块是二进制形式时,构建时间下降到 3 分钟以下。请查看本文末尾的 真实世界的测试 部分,了解更多关于此实例的细节。

本文按部就班地指导您如何在您的环境中使用二进制模块。假设您在开发 EAR 项目,并且在使用源代码控制。本文中所使用的截图是在使用 Rational Application Developer Version 7.0.0.2 中获得的。

这里的许多技巧都可以应用于其他 IBM Rational 产品,包括 Rational® Software Architect、Rational® Software Modeler,和 Rational® Web Developer。

按部就班的方法

基本的实践是一个开发人员同时变更项目的一组子集。他们仍旧可能需要看到源代码形式的应用程序的所有部件。他们需要变更的一列项目可以变更,所以在任意及时的时候,他们可以添加他们要变更的项目列表。

基本的方法十分简单:

  • 从包含了完整的应用程序的 EAR 文件开始,包括源代码。
  • 导入该 EAR 文件,并且这是您的基础。一般该 EAR 文件来自每夜或每周的构建过程。
  • 然后您从源代码控制中导入您期望变更的项目或模块。

为了让一些步骤简单些,我们已经将帮助插件包含进本文(参见下载)。要安装该插件:

  1. 从本文的下载部分下载 BinaryEAR.zip 文件,并解压缩。
  2. 将新插件作为扩展安装(图 1、2,和 3)。
图 1. 管理配置
管理配置
图 2. 添加扩展
添加扩展
图 3. 选择 Eclipse 文件夹
选择 Eclipse 文件夹
  1. 重新启动 Rational Application Developer

实例应用程序

本文使用了一个运行实例(参见下载部分),它拥有您在开发 Java™ 2 Platform,Enterprise Edition(J2EE)应用程序时可能遇到的每种主要类型的项目:

  • SampleEAR: EAR 本身,它还包含一个二进制的第三方 Java Archive(JAR)文件,称为 SampleThirdParty.jar
  • SampleEJB:EJB 项目实例
  • SampleEJBClient:EJB 项目实例的客户端部分
  • SampleWeb:Web 项目实例
  • SampleUtility:实用项目实例

您的应用程序通常有更多项目,但该实例包括了主要类型的 J2EE 项目(图 4)。

图 4. 实例应用程序
实例

创建 EAR

通常,您会通过某种自动化的构建过程创建 EAR。通常,大部分客户进行每夜或每周的构建,但该实例将向您展示如何手工地创建 EAR。

  1. 如果应用程序包含 EJBs,那么您需要确保 EAR 在导出之前已经准备好部署(图 5)。
  2. 利用 Export Shared EAR file 向导导出 EAR 文件,如图 6 所示。
图 5. 准备部署
准备部署
图 6. 导出共享的 EAR 文件
导出共享的 EAR 文件
  1. 如您在图 6 中看到的,帮助插件添加了新的共享 EAR 文件菜单项。

注意:

如果您没有安装帮助插件,或者如果您想要将其并入自动的构建过程,那么您需要执行这些附加的步骤。(如果您使用 Export > Shared EAR file 菜单项,那么您不需要做这些步骤。)

  1. 在 Rational Application Developer V7.0.0.2 中,当导出 EAR 之后,手工地将这两个特殊的文件添加到 EAR 中:
    • .settings\com.ibm.etools.j2ee.teamshare:这是个标记文件,其内容是什么没关系。我在文件中放入单词“marker”,这样文件不会是空文件。
    • .settings\org.eclipse.wst.common.component:它需要来自源代码工作区中的 EAR 项目。
  2. 您可以将这两个文件复制到您文件系统的任意位置(参见图 7)。
  3. 然后使用文件压缩实用程序将它们压缩到 EAR 文件中。您可以使用像此命令的东西:
    > zip -r SampleEAR.ear .settings/*

现在您的 EAR 文件包含原始的文件和两个您手工添加的文件(图 7)。

图 7. 工作区中修改的 EAR 文件
工作区中修改的 EAR 文件

导入 EAR

在团队设置中,每个开发人员会从导入以前导出的 EAR 文件开始。

  1. J2EE 窗口选择 Import(图 8)。
  2. Import 窗口中,选择您的 Shared EAR file(图 9)。
  3. Shared EAR import 窗口中使用箭头,选择 文件名项目名,和 运行时标志服务器 (图 10)。
图 8. 要开始,选择 Import
要开始,选择 Import
图 9. 选择您想要导入的文件
图 9. 选择要导入的文件
图 10. 选择文件名、项目名,和运行时服务器
选择文件名、项目名,和运行时服务器
  1. 关闭并重新打开 SampleEAR 项目。(这是为了在 Rational Application Developer 中回避同步缺陷)。
  2. re-opening (重新打开)项目之后,您的工作区应该如图 11。您可以看到所有的模块是二进制模块。
图 11. 导入项目之后的屏幕视图
导入项目之后的屏幕视图
  1. 您准备部署并运行应用程序。

将二进制模块切换为源代码模块

既然您已经弄好了基础,那么您需要导入您想要变更的项目

  • Web 模块
    1. 使用普通的技术从源代码控制导入 Web 模块。对于此实例,我们使用开源的 Concurrent Version System(CVS),如您在图 12 和 13 中所示。
    2. 对您的 Web 项目做出任何您想要做的变更。您的变更将反映在您的运行应用程序中。
    3. 您可以将变更提交到源代码控制系统中,如果您愿意,其他人和您的构建过程可以获得它们。
图 12. 在 CVS 文件夹下选择 Projects from CVS
在 CVS 文件夹下选择 Projects from CVS
图 13. 选择模块从 CVS 中获取
选择模块从 CVS 中获取
  • EJB 模块
    对于 Enterprise Java™Beans(EJB)项目的方法类似于对 Web 项目的方法。您仅仅需获取您的项目。
  • 实用项目
    对于实用项目的方法类似于对于 Web 项目的方法。您仅仅需获取您的项目。

从源代码模块切换到二进制模块

切换回二进制模块十分简单。仅仅从工作区中删除源代码项目,然后请求服务器重新发布。您现在回来使用模块的二进制形式了。

删除 Web 项目的工作步骤
因为 IBM® WebSphere® Application Server 对一些 Web 二进制文件加了锁,所以我们不能删除 Web 项目。这是解决方案:

  1. 停止 WebSphere 服务器,然后删除 Web 项目。
  2. 在重新启动服务器之后,您也需要重新启动 EAR,从而能够使用 Web archive(WAR)文件的二进制版本。

特别的修改

您还可以在不从源代码控制系统中导入项目的情况下变更代码。假设您工作到很晚,并且您想要临时修改其他人的代码。您不打算将此代码提交,您只想做临时的一些变更,以便,也许,您可以完成代码测试。

您可以从 EAR 直接将任意二进制模块转换为源代码模块。

  1. 右键单击 a shared EAR project,然后选择 Shared EAR > Extract Binary Modules to Projects(图 14)。
图 14. Extract Binary Modules to Projects
Extract Binary Modules to Projects 视图
  1. 选择与共享的 EAR 文件(在此情况下, SampleUtility.jar 文件)相关的二进制模块旁边的复选框,将其释放到您的项目中(图 15)。
图 15. 选择与共享 EAR 相关的二进制模块
选择与共享 EAR 相关的二进制模块
  1. 在导入操作之后,您将拥有一个可以测试变更的普通源代码项目,如您在图 16 中所示。(但记住:因为该项目不来自您的源代码控制系统,您不能将变更提交以保存它们。)
图 16. 普通的源代码项目
普通的源代码项目视图
  1. 当您用完修改的源代码项目时,删除它恢复到原始的二进制版本。
  2. 通过使用 Shared EAR > Repackage Projects to Binary Modules 操作,用修改的源代码项目替代模块的二进制版本也是可能的。

真实世界的测试

我们用包含 6 个 EJB 模块、5 个 Web 模块,和 29 个实用项目的大型工作区。当所有的项目都是源代码形式时,我们首先进行清理构建。这是在拥有 2 GB 内存的 Pentium 4,3 GHz 的机器上执行的。我们切换到使用二进制模块,除了一个 Web 项目以外。我们再一次进行清理构建。这里有我们对两个不同的方法度量的内容:

表 1. 该表使用标题标签作为标题,所有列都是左对齐(推荐的风格)
源代码工作区二进制工作区
用时29.9 分钟2.7 分钟
CPU 时间30.5 分钟3.9 分钟
读字节数1.9 GB0.25 GB
页错误443 K22 K
高峰工作集931 MB318 MB

如您所见到的,节省是惊人的。

结束语

本文介绍如何以源代码形式保存一些项目,并以二进制的形式保存其他项目,从而提高您在 Rational Application Developer 中执行的日常操作的速度。如果您知道其他的,在您的环境中有效的技巧,我们希望收到您的来信。


下载

描述名字大小
用于自动化本文中部分步骤的 Plug-in。BinaryEAR.zip10KB
本文的示例代码。SampleEAR.zip10KB

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

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

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

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

选择您的昵称



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

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

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

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

 


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


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational, SOA and web services
ArticleID=268768
ArticleTitle=在团队环境中使用二进制模块优化 Rational Application Developer
publish-date=11012007