IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Rational  >

developerWorks 图书频道: 奏响软件交付的爵士乐 —— Jazz 平台实践者之路,第 5 章:团队音乐会第一乐章:软件交付项目的快速启动

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

宁 德军, 高级技术经理, IBM
朱 育雄, 资深技术顾问, IBM
孙 昕, 资深技术顾问, IBM

2009 年 9 月 10 日

在 RTC 整个服务器与客户端环境安装完成后,系统会自动创建一个干净的 RTC 数据库(即存储库),形成一个空白开的发环境。在下面的步骤里,我们向大家介绍如何以产品负责人的身份,通过“新项目创建向导”,基于项目的过程模板创建了一个新的项目 SmartProject v2.0。向导将自动地对我们的新项目进行初始化工作,帮助我们对项目进行一些简单的配置,如创建初始的项目团队、创建过程迭代等。接着,我们再对项目进行一些必要配置,包括加入团队成员、设置成员角色、导入已有的源代码数据,以及配置构建环境,以便准备好 SmartProject v2.0 整个软件开发与环境。

我们推出了本书的 前言第 2 章第 3 章第 5 章 供大家在线浏览。更多推荐书籍请访问 developerWorks 图书频道

 图书信息 书名:奏响软件交付的爵士乐 —— Jazz 平台实践者之路
作者:宁德军、朱育熊、孙昕 等编著
出版社:清华大学出版社
出版日期:2009 年 8 月
ISBN:978-7-302-20719-1
购买: 中国互动出版网当当网卓越网

推荐章节:

更多推荐书籍,请访问 developerWorks 图书频道

欢迎您对本书提出宝贵的反馈意见。您可以通过本页面最下方的 建议 栏目为本文打分,并反馈您的建议和意见。

如果您对 developerWorks 图书频道有什么好的建议,欢迎您将建议发给我们

在 RTC 整个服务器与客户端环境安装完成后,系统会自动创建一个干净的 RTC 数据库(即存储库),形成一个空白开的发环境。在下面的步骤里,我们向大家介绍如何以产品负责人的身份,通过“新项目创建向导”,基于项目的过程模板创建了一个新的项目 SmartProject v2.0。向导将自动地对我们的新项目进行初始化工作,帮助我们对项目进行一些简单的配置,如创建初始的项目团队、创建过程迭代等。接着,我们再对项目进行一些必要配置,包括加入团队成员、设置成员角色、导入已有的源代码数据,以及配置构建环境,以便准备好 SmartProject v2.0 整个软件开发与环境。


图 5.0 SmartProject v2.0(查看大图
图 5.0 SmartProject v2.0

基本概念

在详细地介绍创建和配置 SmartProject 的具体步骤之前,我们先来了解一些相关的基本对象的概念和相互间的关联关系。存储库基本对象的关联示意图如图 5.1 所示。


图 5.1 存储库基本对象的关联示意图
图 5.1 存储库基本对象的关联示意图
  • 存储库(Repository):RTC 所基于的 Jazz 平台包含了一个可扩展的存储库,它提供了一个中央的数据存储区域,所有数据对象都以项(Items)的形式进行存储。在一个 RTC 协作开发平台中,只有一个存储库。
  • 项目区域(Project Area):项目区域用于在系统中表示一个软件项目,该项目区域定义了项目的工件、交付件、团队结构、过程和计划等。像 SmartProject 就是一个项目区域。
  • 团队区域(Team Area):一个项目团队的组织结构是通过一组具有层次结构关系的团队区域(一个或多个)来定义的,该团队区域管理着团队成员、角色和团队工件。
  • 工作项类别(Work Item Category):工作项类别用于把工作项按照你的产品模块或项目的组织结构进行分组,每一种类型与一个团队区域关联,该团队成员负责相关产品模块的开发工作。
  • 开发线(Development Line):一条开发线表示一个项目中的一个活动区域,该活动区域有自己的进度计划、交付件、团队和过程。例如,一个项目既包含新产品版本的开发,又包含产品旧版本的维护工作。它们可以被定义为两条不同的开发线,各自有独立的开发力量:不同的交付日期、团队、过程等。每条开发线可以进一步分解为迭代。
  • 迭代(Iteration):一个项目的开发周期可以分解为一组顺序排序的开发小周期,也称为“迭代”,每条开发线可以包含多个迭代构成的层次结构(即迭代可以包含多个子迭代),每个迭代有自己的开始和结束日期。
  • 过程(Process):过程是一系列角色、规则和指引的集合,它用于组织和控制工作流程。项目的过程在项目区域中定义,可以在它包含的团队中进一步定制。




回页首


通过向导快速创建一个新项目

在创建新项目之前,我们需要以产品负责人的身份(下面以 ndejun 用户为例进行说明)登录 RTC 客户端并创建一个“存储库连接”,把 RTC 客户端连接到 RTC 存储库。具体操作方法请参见第 4 章的相关部分说明。

通常我们通过“创建项目区域”向导快速创建一个新的项目。在创建新项目过程中,向导会基于我们选择的项目过程模板来创建并初始化新项目。

首先,我们在“团队工件”导航子窗口中 , 右击“存储库连接 ndejun@localhost”,在弹出的菜单中选择“新建”|“项目区域”命令,这样 RTC 客户端会打开“创建项目区域”向导工作界面(如图 5.2 所示)。在第 1 步中,输入新项目的名称“SmartProject”,输入项目的简单说明信息(摘要),以及项目创建在哪一个存储库中(默认是当前本机的存储库)。然后,选择“下一步”按钮继续。


图 5.2 创建项目区域的第 1 步工作界面:输入项目基本信息
图 5.2 创建项目区域的第 1 步工作界面:输入项目基本信息

在第 2 步中,需要选择基于什么项目过程模板来创建新项目。由于这是第一次登录并创建一个新项目,系统所带的项目模板还没有进行正式部署,因此需要单击“部署模板”按钮,将系统所带的项目过程模板部署到 RTC 服务器中,如图 5.3 所示。


图 5.3 创建项目区域的第 2 步工作界面:部署项目的过程模板
图 5.3 创建项目区域的第 2 步工作界面:部署项目的过程模板

RTC 自带了多种项目过程模板,每种模板都定义项目的角色与权限、过程迭代、工作项类型与流程、提供给产品负责人进一步配置项目区域的指引等。默认的过程模板有下面 5 个。

  • Agile 过程:此过程由多个现有敏捷过程的最佳实践混合而成。
  • Eclipse Way:此过程最初由 Eclipse 开发团队开发。Eclipse Way 是基于迭代的敏捷过程,它侧重于一致而准时地交付高品质软件。
  • OpenUp:该过程是 Eclipse 过程框架项目(EPF)创建的其中一个过程。
  • Scrum:Scrum 的过程模板。Scrum 是一种流行的项目敏捷管理方法。
  • 简单团队过程:旨在帮助用户快速入门的简单过程。团队成员有权执行任何类型的修改,非团队成员无权执行任何修改。

在本例中,使用 Scrum 过程模板来创建 SmartProject 项目,,如图 5.4 所示。


图 5.4 创建项目区域的第 3 步工作界面:选择过程模板
图 5.4 创建项目区域的第 3 步工作界面:选择过程模板

SmartProject 项目创建和初始化完成后,RTC 客户端自动打开描述 SmartProject 的项目区域(如图 5.5 所示),让用户可以继续对项目参数进行配置。在工作界面的右下角,自动列出了系统建议产品负责人应该继续做哪些配置工作的相应工作项。


图 5.5 完成新项目的创建出现的用户界面(查看大图
图 5.5 完成新项目的创建出现的用户界面

下面,继续对 SmartProject 项目进行一些必要的配置工作,以便可以开始进行 SmartProject v2.0 的开发工作 , 如图 5.6 所示。

  • 定义团队成员:创建项目团队的组织结构,增加团队员,设置成员角色等。
  • 定义工作项的类别与发行版:创建新的工作项类别“发布版 2.0”,把 SmartProject 的工作项按新的类型归类;并创建发行版“发布版 2.0”,标识我们开发的目标。
  • 定义开发段与迭代:将 SmartProject v2.0 的开发周期划分为多个迭代,设置迭代的始止日期。
  • 与 Jazz Source Control 共享代码:导入现有的 SmartProject v1.0 源代码,作为 v2.0 开发的基础 .
  • 定义新构建:构建 SmartProject 的构建环境 .

图 5.6 建议进一步初始化的工作项列表
图 5.6 建议进一步初始化的工作项列表




回页首


添加团队成员

在 SmartProject 创建并配置完成之后,需要定义该项目的开发团队。在 RTC 中,一个项目可以包含多个开发团队,每个开发团队又可以包含多个小团队 . 对于一个复杂的项目,它可以有着复杂的团队层次组织结构。为了简单起见,SmartProject 只包含一个开发团队,团队由多名成员构成,每位成员有自己的 Scrum 角色。如图 5.7 所示为团队区域描述窗口。


图 5.7 团队区域描述窗口(查看大图
图 5.7 团队区域描述窗口

在 SmartProject 的项目区域编辑窗口单击链接“显示在团队组织中”,可以查看“团队组织”。然后通过右键菜单打开“SmartProject 团队”的团队区域编辑窗口。在成员子窗口中,产品负责人加入项目的所有成员,并给他们分配不同的角色,如图 5.8 所示。


图 5.8 添加团队成员并设置角色
图 5.8 添加团队成员并设置角色

在选择开发人员加入开发团队并给他们设置相应角色之后,需要保存团队区域。保存完成后,RTC 提示是否向团队成员发送加入开发团队的邀请函。如果需要发送,RTC 将向每位成员发送包含如何连接 RTC 参数的邮件(需要预先配置好 RTC 与 SMTP 服务器的集成)。如图 5.9 所示为添加了项目成员的团队区域窗口。


图 5.9 添加了项目成员的团队区域窗口
图 5.9 添加了项目成员的团队区域窗口




回页首


定义工作项的类别和发行版

工作项类别用于归类,即对项目区域包含的众多工作项(如故事、任务、缺陷等)按团队进行归类,从而区分出这些不同类型的工作项记录分别属于哪些不同的团队。由于 SmartProject 项目区域只包含一个团队,所以只需要创建一个工作项类别“发布版 2.0”,并把该类别关联到 SmartProject 团队区域。这样,当创建一个新的工作项时,指定该工作项的类别属于“发布版 2.0”,那么该工作项就会自动属于 SmartProject 团队区域,如图 5.10 所示。


图 5.10 定义 SmartProject v2.0 的工作项类别
图 5.10 定义 SmartProject v2.0 的工作项类别

另外,还需要为标识 SmartProject v2.0 最终发布版本创建发行版“发布版 2.0”,如图 5.11 所示。


图 5.11 定义 SmartProject v2.0 的发行版
图 5.11 定义 SmartProject v2.0 的发行版




回页首


定义开发段与迭代

RTC 允许在一个项目中并行开展不同类型的开发活动,它支持一个项目中包含多条并行的开发线(Development Line)。一条开发线指的是项目中面向某个具体开发目标的一组开发活动,例如新版本开发、旧版本补丁开发等是不同的开发线。

在一条开发线的生命周期中,可以划分为多个迭代(iteration),每个迭代有自己的生命周期(即定义了开始与结束日期),迭代又可以细分为子迭代。这是敏捷开发方法(如 Scrum)的典型特征:每个迭代都是一个完整的软件生命周期,后一个迭代的工作基于前一个迭代的结果,每个迭代都会产生可工作的软件。

在 SmartProject 项目中,只包含了一条开发线(使用系统自动创建的主开发线)。开发线下面包含一个大迭代,用于代表 SmartProject v2.0 开发。我们把 SmartProject v2.0 的开发工作分三个子迭代(冲刺)来完成,见表 5.1。


表 5.1 迭代
迭代 标识 显示名 开始日期 结束日期
父迭代 R1.0 发布版 1.0 08-2-1 08-5-1
子迭代 1.0 S1 冲刺 1 (1.0) 08-2-1 09-2-29
子迭代 1.0 S2 冲刺 2 (1.0) 08-3-1 08-3-31
父迭代 R2.0 发布版 2.0 09-2-9 09-5-9
子迭代 2.0 S1 冲刺 1 (2.0) 09-2-9 09-3-9
子迭代 2.0 S2 冲刺 2 (2.0) 09-3-9 09-4-9
子迭代 2.0 S3 冲刺 3 (2.0) 09-4-9 09-5-9

在项目区域中的过程迭代子窗口,使用表 5.1 数据创建 SmartProject v1.0(不是必须的)和 v2.0 的过程迭代后,还需要把当前迭代设置为冲刺 1(2.0),标志着 SmartProject v2.0 的开始,如图 5.12 所示。


图 5.12 SmartProject 过程迭代的定义结果
图 5.12 SmartProject 过程迭代的定义结果




回页首


快速初始化项目数据

SmartProject v2.0 是基于 v1.0 的源代码进行开发的。下面将把 v1.0 的所有源代码快速导入到 RTC 的存储库中(在真实项目中,v1.0 的所有源代码应该已经存在 RTC 的存储库中)。从第 6 章开始,将以 v1.0 为基础介绍 v2.0 的开发过程与场景。

RTC 提供了强大的软件配置管理(Software Configuration Management, SCM)功能,能够对项目的源代码、文档进行版本管理。有关 RTC 配置管理的各个概念说明、具体是如何进行版本管理的,请参考第 6 章章相关内容的详细介绍。

SmartProject 的源代码分为两部分,即核心代码(Core)和用户界面代码(GUI)。它们的目录结构设计如图 5.13 所示。我们先在本地准备这样的目录结构,每个子目录放置了几个有内容的 java 文件,作为 SmartProject v1.0 的源代码文件。


图 5.13 目录结构
图 5.13 目录结构

下面将把在本地目录准备好的源代码文件导入到 RTC 存储库中。

5.6.1 步骤 1:规划和创建 SmartProject 的流与组件

在 RTC 中,源代码和文档是存储在组件(Components)中的,每个组件下面包含目录和子目录,子目录下包含文件。组件中的每个目录和文件都被版本化,即当它们发生改变时,组件就会记录它们详细的变更情况(变更历史)。流(Stream)是团队进行开发工作的独立区域,团队每个开发人员都从相应的团队流获得最新的源代码文件进行开发,并把开发结果合并到该流中。不同的流可以引用不同或相同的组件,因而组件可以给多个团队流共享或进行并发修改。

对于 SmartProject 项目,我们只规划并创建了一条流,即“SmartProject 团队流”,所有开发人员都将使用同一条流。同时也创建了两个组件,分别是 Core 和 GUI(目前组件是空的,里面没有源代码),分别用于存放核心代码和用户界面代码,如图 5.14 所示。


图 5.14 给团队流创建并添加一个新组件
图 5.14 给团队流创建并添加一个新组件

从团队工件窗口可以看到,两个组件已经创建完成(其中,Core 组件是在原有默认创建的组件基础上进行改名),并关联在 SmartProject 团队流上,如图 5.15 所示。


图 5.15 SmartProject 组件与流的规划结果
图 5.15 SmartProject 组件与流的规划结果

5.6.2 步骤 2:创建个人的的存储库工作空间

在下一章将会详细讲到,当要导入源代码到组件中,或者修改组件中的源代码,需要在个人的存储库工作空间(Repository Workspace)进行。存储库工作空间与固定的流关联,从流上获得最新的源代码进行修改,修改后再把最新交付到相应的流中。

因此,为了导入 SmartProject v1.0 的源代码,需要先基于流创建自己的存储库工作空间,如图 5.16 所示。然后再装入流所关联的组件 Core 和 GUI,如图 5.17 所示。


图 5.16 基于团队流创建存储库工作空间
图 5.16 基于团队流创建存储库工作空间

图 5.17 存储库工作空间下载到本地工作空间
图 5.17 存储库工作空间下载到本地工作空间

5.6.3 步骤 3:创建 Java 项目,导入源代码文件

我们准备好的 SmartProject v1.0 的源代码是几个用于示例的 Java 源文件,分别组织于若干个子目录中。在本步中,创建两个 Java 项目,即 Core 项目和 GUI 项目,以项目用作源代码容器,先把源文件加入到项目中。在下一步骤中,再以 Java 项目为基本单位,分别将把这些源文件加入到 RTC 存储库的不同组件(即 Core 和 GUI)中。

在 Java 透视图的包资源管理器中,选择“文件”|“新建”|“Java 项目”命令,分别创建 Core 项目和 GUI 项目。然后分别基于这两个项目,选择“文件”|“导入”| “文件系统”命令 , 将上述准备好的源代码分不同目录分别导入到这两个 Java 项目中,结果如图 5.18 所示。


图 5.18 创建 Java 项目并导入源代码文件
图 5.18 创建 Java 项目并导入源代码文件

5.6.4 步骤 4:把 Java 项目加入 RTC 存储库的组件中

Java 项目准备好之后,我们将逐个项目加入到 RTC 存储库中。在 Java 透视图的包资源管理器中,选择每个项目右键菜单命令“小组”|“共享项目”,再选择 Jazz Source Control 源代码控制类型。在选择 Java 项目加入到目标组件时,我们选择之前已经创建的存储库工作空间中的组件(如图 5.19 所示)。两个项目分两次加入,每次选择不同的组件。


图 5.19 把 Java 项目共享到 RTC 配置管理
图 5.19 把 Java 项目共享到 RTC 配置管理

SmartProject 团队流是团队的共享区域。我们导入 SmartProject 源代码的目标就是该团队流。由于流是不能直接被修改的,因此需要先把这些新文件导入到开发人员的存储库工作空间中(如图 5.20 所示),再将变更从该空间正式交付到团队流上。相关原理和操作过程请参考第 6 章的具体说明。


图 5.20 把源代码先装入到存储库工作空间
图 5.20 把源代码先装入到存储库工作空间

上述操作完成之后,两个 Java 项目及它的源代码文件都被加入到当前我们选择的存储库工作空间内。存储库工作空间是个人的工作空间,在“暂挂的变更”视图中,比较显示出刚加入的源代码文件只是存在于当前个人的存储库工作空间,而整个团队的工作区域“SmartProject 团队流”并没有这些源代码文件。因此,还需要在该视图中选择右键菜单命令“传递”,将这些源代码文件从当前个人的存储库工作空间,交付到团队的区域中,如图 5.21 所示。


图 5.21 添加的源代码显示在“暂挂的变更”
图 5.21 添加的源代码显示在“暂挂的变更”

交付完成后,Java 透视图的包资源管理器将使用不同的标记,显示这些源代码文件已经加入到 RTC 的存储库中,,如图 5.22 所示。


图 5.22 源代码已经加入到 RTC 存储库的组件中
图 5.22 源代码已经加入到 RTC 存储库的组件中

5.6.5 步骤 5:打快照,记录。

当 SmartProject v1.0 的源代码导入到 RTC 存储库之后,我们希望记录下当前的状态和源代码内容,以便在将来源代码修改之后仍然能够找回当前这个状态下的源代码内容。通过在流上创建快照(snapshot)的方法来实现,如图 5.23 所示。


图 5.23 创建快照
图 5.23 创建快照




回页首


快速创建项目的构建环境

RTC 提供了一个自动化的构建环境。构建工程师或开发人员只需在 Eclipse 环境中就可以发起构建请求,把构建任务提交给后台运行的构建引擎(如 Jazz Build Engine 等), 并在 Eclipse 环境窗口中查看构建的状态和最终的详细结果。下面的步骤将对 SmartProject v2.0 的构建环境进行简单的配置,以便构建工程师和开发人员可以在 Eclipse 环境中发起并完成自动化构建工作。

我们将采用 Ant 构建脚本(build.xml)来定义具体的构建过程。而整个构建过程的执行则由 RTC 提供的 Jazz Build Engine 来执行和反馈结果。以构建工程师账号(如 zhuyux 账号)在 RTC 客户端登录并访问 SmartProject,创建所需要的构建脚本 build.xml。

在创建或修改构建脚本或其他源文件之前,构建工程师需要有自己的个人存储库工作空间(有关如何创建存储库工作空间请参考本章前面的讲解,如图 5.24 所示)。


图 5.24 构建工程师创建自己的存储库工作空间
图 5.24 构建工程师创建自己的存储库工作空间

5.7.1 步骤 1:创建构建脚本

Ant 是一个平台无关的 Java 项目构建工具。使用 Ant 可以方便地将项目的构建流程有效地管理起来。Ant 已经成为了 Java 项目构建事实上的标准。构建脚本为 XML 格式,每一个 Ant 脚本中包含一个 Project, Project 下又包含许多的 Target, Target 由一个或多个 Ant Task 组成。Ant 通过执行构建脚本来生成可发布的软件包。

通常的构建过程是:从 RTC 服务器获取最新版本的代码,然后对代码进行编译、单元测试,最后打包等。本文仅介绍根据构建脚本文件模板创建一个简单的构建文件,如图 5.25 所示。有关具体如何加入构建脚本的任务,请参考相关的 Ant 参考资料。


图 5.25 基于模板创建构建脚本文件
图 5.25 基于模板创建构建脚本文件

在 Core 项目中,通过选择右键菜单中的“新建”|“文件”命令来创建 build.xml 文件,并通过选择菜单中的“编辑”|“内容辅助(ALT+/)”命令,选择“构建脚本模板”进行快速地创建。

构建脚本创建完成后,还需要转到“暂挂的变更”视图。通过选择右键菜单中的“传递”命令,将 build.xml 文件从当前个人的存储库工作空间交付到团队的流中(操作方法类似于源代码导入),如图 5.26 所示。


图 5.26 向团队流交付创建构建脚本产生的变更
图 5.26 向团队流交付创建构建脚本产生的变更

5.7.2 步骤 2:创建构建引擎

物理上的构建引擎进程是一个使用命令行程序运行的服务器进程(如 Jazz Build Engine),运行在本机上其他机器上。在 SmartProject 项目中,需要对物理构建引擎进行逻辑上的定义与描述,包括定义它的标识、所属团队、会有哪些构建定义可以在上面上运行等。当实际启动构建引擎进程时,需要通过设置参数与构建引擎定义关联起来,如图 5.27 所示。


图 5.27 定义与描述 SmartProject 的构建引擎
图 5.27 定义与描述 SmartProject 的构建引擎

5.7.3 步骤 3:创建构建定义

当我们进行自动化构建的时候,是基于构建定义(Build Definition)来发起构建请求的。构建定义包含了整个构建的输入参数或属性、从何处获得取源代码、构建过程使用的构建脚本等信息。

图 5.28 显示了我们给 SmartProject 创建了一个构建定义 SmartProject Team Build,用于自动化构建 SmartProject 的最新源代码。或者 SmartProject 各个开发人员在交付他们修改的代码前,对个人工作空间最新源代码的自动化构建。在该构建定义里,我们可以看到,指定了该构建定义属于当前项目团队。


图 5.28 新建构建定义:选择构建定义的模板
图 5.28 新建构建定义:选择构建定义的模板

新的构建定义 SmartProject Team Build 创建后,还需要设置一些必要的参数,这样才能最终创建成功。首先,需要指定该构建定义运行在前面所创建的构建引擎上,如图 5.29 所示。


图 5.29 新建构建定义:指定构建引擎
图 5.29 新建构建定义:指定构建引擎

我们希望 SmartProject Team Build 能够支持每日构建,在每天晚上某个时刻自动执行一次构建,把开发人员当天交付的源代码变更自动执行一次完整的构建过程:编译、单元测试、打包等,以便及时发现当天源程序存在的问题。第二天开发人员上班时就能够收到构建结果和问题,从而有效地避免问题的积累,确保开发过程每个阶段都有高质量的代码。如图 5.30 表示设置构建的定期执行。


图 5.30 新建构建定义:设置构建的定期执行
图 5.30 新建构建定义:设置构建的定期执行

在 Jazz Source Control 页面中描述该构建将如何获得源代码。在构建工作空间,指定了构建工程师在前面创建存储库工作空间,作为进行自动化构建的存储库工作空间。另外,还指定了本地工作目录,用于将存储库工作空间的内容下载到本地。在每次构建时,构建引擎都会从流上获得最新的源代码更新到该存储库工作空间,进而再下载到本地工作目录,最后提供给构建脚本进行具体构建。图 5.31 表示设置源代码控制的相关参数。


图 5.31 新建构建定义:设置源代码控制的相关参数
图 5.31 新建构建定义:设置源代码控制的相关参数

最后,还需要在 Ant 窗口中填写路径,以指定哪一个文件是相关的构建脚本(build.xml),所使用的路径是本地工作目录的路径,如图 5.32 所示。


图 5.32 构建定义的 Ant 参数
图 5.32 构建定义的 Ant 参数

当填写上述参数完毕并把构建定义保存后,团队工件窗口就会显示出我们成功创建的 SmartProject Team Buid,如图 5.33 所示。创建构建引擎和构建定义之后,就可以启动构建引擎,提交自动化构建请求。


图 5.33 显示已经创建完成的构建引擎与构建定义
图 5.33 显示已经创建完成的构建引擎与构建定义

5.7.4 步骤 4:配置构建引擎启动脚本

Jazz Build Engine 的启动程序文件是 jbe。这是一个命令行程序,运行时需要提供相关参数。为了方便起见,可以创建一个批处理文件,内容如图 5.34 所示。主要参数功能说明如下。

  • engineId:对应上述创建的构建引擎的逻辑定义。
  • Repository:RTC 服务器地址。
  • userId, pass:访问 RTC 服务器所使用的专门构建账号。

图 5.34 构建引擎启动脚本(样本)
图 5.34 构建引擎启动脚本(样本)

直接运行批处理文件,可以看到 Jazz Build Engine 成功连接到 RTC 服务器和 SmartProject,并进入循环等待状态,等待构建工程师和开发人员发出的自动化构建请示,如图 5.35 所示。


图 5.35 构建引擎进程等待构建请求
图 5.35 构建引擎进程等待构建请求

5.7.5 步骤 5:验证构建环境是否正确

完成上述步骤后,SmartProject 构建环境已经配置完成,并且成功启动正等待接受构建请求进行构建工作。因此,只需提交真正的一个构建请求,如果能够成功执行,就能够说明上述的配置工作正确,SmartProject 构建环境是就绪的,如图 5.36 所示。


图 5.36 提交构建请求
图 5.36 提交构建请求

可以单击构建定义 SmartProject Team Build,通过选择右键菜单命令“请求构建”发起构建请求。在弹出的构建请求窗口中,无需填写额外的参数,即使用上述步骤设置的默认参数进行构建即可,如图 5.37 所示。


图 5.37 提交构建请求
图 5.37 提交构建请求

提交构建请求完成后,可以在构建结果窗口中查看构建请求的处理情况,如图 5.38 所示。还可以通过在构建请求处理过程中不断地刷新构建结果窗的信息,实时地查看构建请求的处理情况。


图 5.38 构建结果显示窗口
图 5.38 构建结果显示窗口

当构建请求处理完成后,一个浮动窗口显示出来,显示构建是否成功完成。单击该窗口可以显示详细的构建结果和日志,如图 5.39 所示。


图 5.39 通过浮动窗口通知构建结果
图 5.39 通过浮动窗口通知构建结果




回页首


项目成员连接到 SmartProject 项目

通过上述步骤,SmartProject 项目便创建并配置成功了,团队的开发与交付软件环境也已经准备就绪了,SmartProject v2.0 开发团队就可以在上面进行开发工作。下面,开发人员启动 RTC 客户端,连接 SmartProject 项目,并对客户端进行一些初始化的设置工作。

5.8.1 连接项目

开发人员启动 RTC 客户端,需要根据提示输入 Eclipse 本地工作空间。RTC 客户端启动完成后,可以看到 RTC 显示的欢迎页面,面面显示许多有关 RTC 的工具指引和开发资料,它是我们深入学习 RTC 必不可少的材料。

关闭 RTC 欢迎页面,在团队工件窗口中选择“连接到项目区域”,使用我们自己的账号,创建存储加连接,并将 RTC 客户端连接到 RTC 服务器上的 SmartProject 项目区域,如图 5.40 所示。


图 5.40 连接到项目区域
图 5.40 连接到项目区域

连接完成后,在团队工件窗口中会显示出刚刚创建的存储库连接和 SmartProject。展开 SmartProject,可以看到它包含的所有工件:报告、计划、构建、团队、流等,如图 5.41 所示。


图 5.41 成功连接了 SmartProject
图 5.41 成功连接了 SmartProject

5.8.2 配置 RTC 客户端与 Jabber 的连接

前面我们已经谈到,RTC 能够跟多种即信通信工具集成,包括开源即时通信工具 Jabber。在第 4 章中,我们已经安装并启动了 Jabber。下面介绍如何配置 RTC 客户端,连接 Jabber 服务器。

进入 RTC 的首选项窗口,在即时消息传递栏目中需要添加一个新的 IM 账户来连接 Jabber 服务器。在添加 IM 账户窗口中,需要选择供应商为“Jabber XMPP 服务器”,并输入 Jabber 服务器的地址、用户标识和密码(使用与 RTC 一样的账号即可)、资源(可选),如图 5.42 所示。


图 5.42 配置 RTC 客户端与 Jabber 的集成
图 5.42 配置 RTC 客户端与 Jabber 的集成

添加 IM 账号后,单击连接按钮,测试连接是否成功。如果刚添加的连接显示为绿色,则说明 RTC 客户端已经成功连入 Jabber 服务器了。





回页首


小结

本章详细介绍了如何在一个安装配置好的空白 RTC 平台里基于过程模板创建新项目,配置项目的过程迭代,添加项目成员,导入项目已有的源代码数据,并快速创建项目的构建环境。从第 6 章开始,项目团队将基于我们创建的项目环境进行 SmartProject v2.0 的开发工作。

本章的主要知识点包括:

  • 通过向导快速创建并初始化新的项目:SmartProject;
  • 给 SmartProject 项目添加团队新成员;
  • 定义相关的工作项类别和发行版;
  • 定义 SmartProject 生命周期的开发段与迭代;
  • 导入旧版的源代码文件;
  • 创建项目的构建环境;
  • 项目成员如何连接到 SmartProject 项目。


读者反馈

欢迎您对本书提出宝贵的反馈意见。您可以通过本页面最下方的 建议 栏目为本文打分,并反馈您的建议和意见。

如果您对 developerWorks 图书频道有什么好的建议,欢迎您将建议发给我们



参考资料

学习

获得产品和技术
  • 访问 Rational Team Concert 产品专题,了解最新的 IBM Rational Team Concert (RTC) 产品文档和产品信息,获得关于 IBM Rational Team Concert (RTC) 的技术文档和参考资源,可以查阅产品概览、产品手册、产品技术支持、试用版下载,以及相关文章、教程、多媒体课堂和产品演示等信息。

  • 访问 Rational Team Concert 学习路线图,这个 RTC 学习路线图可帮助您从入门开始了解 RTC 和 Jazz 技术,并将这一全新的软件开发协作体验,及其相关技能落实到您日常的软件开发当中。

  • 下载免费的 IBM Rational Team Concert Standard Edition 试用版


讨论


作者简介

宁德军

宁德军,现任 IBM Rational 中国区高级技术经理,PMP。有超过 15 年的软件工程经验,曾为数十家公司提供过软件工程管理和项目管理的咨询服务。目前专注于软件过程改进、敏捷开发过程、项目管理和架构技术等的研究。


朱育雄

朱育雄,现任 IBM Rational 资深技术顾问,PMP。有超过 10 年的软件开发和管理经验,曾经为华为、ZTE、中国移动、南航、深圳软件园等多家单位提供过软件管理技术服务。目前专注于软件过程改进、软件项目管理、软件配置管理和面向对象分析设计等技术的研究。


孙昕

孙昕,硕士。现任 IBM 中国有限公司软件部资深技术顾问,PMP。加入 IBM 之前,在国内外多家大型企业任职,从事软件开发和管理工作,超过 10 年的软件工程实施和咨询经验,对于软件工程方法、理论、工具有着非常深刻的理解和认识。




对本文的评价








IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款