级别: 初级 David Leigh (dleigh@us.ibm.com), Solution Test Architect, IBM Mark Wainwright (markwain@us.ibm.com), Solution Test Architect, IBM
2004 年 6 月 01 日 本文说明了如何下载和安装一个 WebSphere Studio 插件来扩展 headless Ant 能力,以支持将项目导入工作区。本文还包括自动构建过程所需的一个可下载的 build.xml 文件及相关文件。
引言
本系列的
第 1 部分说明了自动构建的动机和目标,并描述了总体方法。
第 2 部分描述了如何使用带有 CVS 作为代码存储库的 Application Developer V4 来实现这种方法。本文(第 3 部分)将展示如何使用 IBM® WebSphere Studio Application Developer V5(以下称为 Application Developer)并以 IBM Rational® ClearCase 作为软件配置管理 (SCM) 系统来建立自动构建。虽然本文应用的对象是 ClearCase,但是下面所描述的过程和脚本在稍作修改之后可用于 CVS 和其他的 SCM。
下面简要概述这个文章系列所描述的方法:
- 开发人员在 Application Developer 工作区中开发项目,其中,他们可以创建代码、更改代码和进行单元测试。当开发人员对自己的代码感觉满意时,就可以将项目复制到 SCM 中。
- 构建人员将任何新创建的项目的名称添加到构建中要包括的项目列表。
- 自动过程在单独的、批处理模式 (headless) 的 Application Developer Ant 会话中周期性地运行和执行下列任务:
- 将构建中要包括的所有项目从 SCM 提取到一个本地目录中
- 创建一个新的 Application Developer 工作区
- 将每个项目导入新的工作区中
- 依次构建每个项目
- 将任何构建时错误写入日志输出文件
- 将可执行程序导出到一个适当的位置。这可以是一个 FTP 站点,也可以是一个挂载的文件系统
Application Developer V5 包括执行以上 1-6 个子步骤所需要的 Ant 任务(步骤 3 和 6 除外)。要将项目导入工作区并通过 FTP 导出它们,您必须使用本文所提供的插件来扩展 Application Developer。
ImportProject 插件提供了一个新的 Ant 任务——
ImportProject ,并且它允许 Ant 会话将项目导入工作区,方法是在用户界面中选择
File => Import => Existing Project Into Workspace。
CommonsNet 插件包含 Apache Jakarta 项目
Commons/Net Internet 协议组 Java™ 库(打包为一个 WebSphere Studio 插件档案文件)。
CommonsNet 插件使其能够从 Ant 会话中下载 FTP 文件。构建过程中的其余任务使用
antextras 包,它包含在 Application Developer V5 中,并在
Using Ant with WebSphere Studio Application Developer系列文章中进行了详细描述。
设置构建机 (build machine)
设置用于运行自动构建的机器(
构建机)包括下列步骤:
- 安装 Application Developer。
- 安装 IBM Rational ClearCase 客户端。
- 安装
ImportProject 插件。
- 安装
NetComponents 插件和 JAR 文件(只适用于使用 FTP 的情况)。
- 建立构建脚本文件。
- 创建一个包含待构建的项目的 ClearCase 视图。
下面详细描述这些步骤。
安装 Application Developer
构建机必须安装有 Application Developer。如果应用程序依赖于 WebSphere Studio Application Developer Integration Edition 中的 Programming Model Extensions 进行构建,则构建机需要安装 Integration Edition。Rational ClearCase LT 随 Application Develope 一起提供,并且可以安装 Application Develope 时进行安装。您必须将 Rational ClearCase 客户端配置为指向 ClearCase 服务器,这可以在安装 ClearCase 客户端时完成。该方法使用运行 Windows® 或 Linux 的构建机;本文假定构建机运行 Windows。
安装 ImportProject 插件
要安装启用
ImportProject Ant 任务的插件,请下载
ImportProject.zip 文件,并将其解压到
<WSAD_HOME>/wstools 目录,其中
WSAD_HOME 是安装 Application Developer 的根目录。
安装 NetComponents 插件和 JAR
要通过 FTP 将构建结果复制到适当的目的地,您需要安装 NetComponents Java 库,它是依赖于 Ant ftp 任务的文档库。随 Application Developer V5 一起提供的 Ant 的版本为 Ant V1.5.3,它需要
NetCompnents.jar 库。另一方面,Ant 的最新版本 V1.6.0 需要
commons-net.jar 库。要安装
NetComponents 库,您需要执行下列步骤:
- 下载
NetComponentsPlugin-1.3.8.zip ,并将其解压到
<WSAD_HOME>/wstools 目录。这将为库文件 (
<WSAD_HOME>/wstools/eclipse/plugins/com.oroinc.net_1.3.8 ) 和需要的
plug-in.xml 创建目录。由于许可限制,您需要分别下载实际的库 JAR 文件。
- 从
http://www.savarese.org/oro/ 下载
NetComponents-1.3.8.zip 。将其中的
NetComponents.jar 复制到
<WSAD_HOME>/wstools/eclipse/plugins/com.oroinc.net_1.3.8 。
建立构建脚本文件
下一步将构建脚本文件从 buildscripts.zip 解压到构建机的一个目录中(例如
C:\Automation )。该档案文件包含五个文件:
|
文件名称
|
描述
|
build.bat
| 以 headless 模式建立构建环境并调用 Application Developer 的主要执行文件。 |
build.xml
| 主要的 Ant 构建文件。编辑此文件,在其中添加需要构建的每个项目的名称。 |
fullbuild.bat
| 用于 build.bat 的包装器脚本,对以计划任务的形式运行自动构建有用。 |
ProjectBuild.xml
| 包含用于构建 Application Developer 项目的目标的 Ant 构建文件。 |
setupBuild.bat
| 包含用于建立构建环境的变量的配置文件。 |
您必须在
setupBuild.bat 文件中设置几个变量,使其与您的环境匹配:
将
WSAD_HOME 变量设置为安装 Application Developer 的根目录:
rem WSAD 5.0 installation directory - use back slashes
SET WSAD_HOME=C:\PROGRA~1\IBM\WSAD
|
将
CLEARCASE_HOME 目录设置为安装 Rational ClearCase 的
bin 目录:
rem ClearCase base directory (usually \PROGRA~1\Rational\CLEARC~1\bin)
rem use back slashes
SET CLEARCASE_HOME=C:\PROGRA~1\Rational\CLEARC~1\bin
|
将
AUTOMATION_HOME 变量设置为提取
buildscripts.zip 档案文件的目录:
rem Root directory of the automation scripts and workspaces
rem (usually C:\Automation)
rem use back slashes
SET AUTOMATION_HOME=C:\Automation
|
将
FTP_SERVER 和
FTP_PORT 变量设置为构建结果要复制到的 FTP 服务器的主机名和端口:
rem FTP server
SET FTP_SERVER=myftpserver
rem FTP port (default port is 21)
SET FTP_PORT=21
|
FTP_USER 和
FTP_PASSWORD 变量用作登录 FTP 服务器的身份验证:
rem FTP user ID
SET FTP_USER=build
rem FTP password
rem If you "rem" out the following line, you will be prompted to enter
rem the password.
rem This means that you will not be able to run truly unattended build.
SET FTP_PASSWORD=buildpass
|
FTP_REMOTEDIR 变量是构建结果要复制到的 FTP 服务器的位置:
rem Directory on FTP server to upload the newly built files
rem use forward slashes
SET FTP_REMOTEDIR=/dailybuilds/%CLEARCASE_VOB%
|
创建 ClearCase 视图
建立构建机的最后一步是,为包含待构建的项目的
Versioned Object Base (VOB) 创建一个适当的 ClearCase 视图。将此视图命名为
<CC_VOB>_view ,其中
CC_VOB 是 ClearCase VOB 的名称。它必须位于
AUTOMATION_HOME 目录中。例如,如果 VOB 的名称为 projectVOB,
AUTOMATION_HOME 目录为
C:\Automation ,那么可将视图命名为
projectVOB_view ,然后将它放在
C:\Automation\projectVOB_view 中。
运行构建
在运行构建前,请编辑
build.xml ,在
buildAll 中为每个待构建的项目添加一个 Ant 任务。这些任务的格式如下面的例子所示——三个待构建的项目名称分别为
projectEAR、projectEJB 和 projectWEB 。
<target name="buildAll" depends="init">
<ant antfile="ProjectBuild.xml"><property name="project.name" value="projectEAR"/></ant>
<ant antfile="ProjectBuild.xml"><property name="project.name" value="projectEJB"/></ant>
<ant antfile="ProjectBuild.xml"><property name="project.name" value="projectWEB"/></ant>
</target>
|
重要:请保持此列表为最新列表,因为项目要添加到 VOB。如果一个项目没有任务,它就不会包含在构建中。
要从命令行运行构建,请打开一个命令提示符,定位到
AUTOMATION_HOME\buildscripts 目录并运行
build.bat ,指定要构建的 ClearCase VOB 和要调用的 Ant 目标:
C:\buildscripts> build <CLEARCASE_VOB> [ <Ant target> ] ... |
例如,下面的将构建
build.xml 中列出的所有项目:
C:\buildscripts> build cc_build_view buildAll |
如果没有指定任何的 Ant 目标,则会显示一个描述所有可用目标的列表:
Available targets:
init - displays the currently set variables and displays this help message
extractCode - extracts the contents of clearcase.vob into the workspace.dir
(${workspace.dir}) directory.
buildAll - builds each of the projects. This target will run build.xml (using the default target)
in each of the project directories. In turn, these ant scripts should do whatever
compiling is necessary as well as package any needed artifacts (EAR, WAR, RAR, JAR
files etc...) to the ftp.localdir (${output.dir}) directory.
ftpAll - FTPs the packaged files to the ftp.server (${ftp.server}) FTP site.
To run a full build:
C:\Automation\buildscripts> build init extractCode buildAll ftpAll
|
要设置一个无需人工干预、自动运行预定构建的 Windows 机,您需要添加一个预定任务,它清除以前所有构建,并以正确的参数调用一个新的构建。在 Windows 的 Start 菜单中选择
Programs =>Accessories =>System Tools =>Scheduled Tasks。然后选择 File =>New ,再输入一个有意义的名称,例如“自动日常构建(Automated daily build)”。双击新任务,完成如下字段:
| Run:; |
C:\Automation\buildscripts\fullbuild.bat <CLEARCASE_VOB>
| | Start in:; |
C:\Automation\buildscripts
|
上面的值假定
AUTOMATION_HOME = C:\Automation 。
fullbuild.bat 可执行程序是
build.bat 外面的一个简单包装器。它删除
AUTOMATION_HOME\dailybuilds 目录中旧的构建数据并调用
build.bat ,指定
init、extractCode、buildAll 和
ftpAll 目标 。在 Schedule 选项卡中,选择您要运行的任务并单击
OK。现在,构建应该按计划自动运行。日志数据将会写入
setupBuild.bat 文件所指定的
AUTOMATION_HOME\dailybuilds\CLEARCASE_VOB\TODAYS_DATE 。
结束语
这个简单的自动构建方法已经在许多开发项目中证明是成功的。构建过程导入并构建 Application Developer 工作区项目,与开发人员所做的完全一样,并且这样得到的构件是准确、可靠和可重复的。
致谢
作者非常感谢
ImportProject Ant 任务的作者 Jim Thorpe,正是在他的帮助下自动构建才成为可能。
下载 | 名字 | 大小 | 下载方法 |
|---|
| buildscripts.zip | 6 KB | HTTP | | ImportProject.zip | 23 KB | HTTP | | NetComponentsPlugin-1.3.8.zip | 1 KB | HTTP |
参考资料
作者简介  | |  |
David Leigh是座落于美国北卡罗莱纳州的 IBM Software Group's System House 组织的一名顾问软件工程师。他具有专家经验的领域包含流程编排、应用程序和服务器安全性、高可用性、监控、IBM AIX 和 Linux。您可以通过
dleigh@us.ibm.com与 David 联系。
|
 | |  |
Mark Wainwright是一名高级软件工程师,也在 IBM Software Group's System House 组织工作。他设计的高伸缩性软件解决方案既是为了演示 IBM 中间件的集成,也是为了指出其中的集成问题,以供 IBM 开发团队来解决。他有一个妻子和两个孩子,与家人在一起能够让他感觉非常快乐。您可以通过
markwain@us.ibm.com与 Mark 联系。
|
对本文的评价
|