内容


建立一个 Jazz Build Engine 来运行 Ant 脚本

第 1 部分. 设置构建定义

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 建立一个 Jazz Build Engine 来运行 Ant 脚本

敬请期待该系列的后续内容。

此内容是该系列的一部分:建立一个 Jazz Build Engine 来运行 Ant 脚本

敬请期待该系列的后续内容。

这一系列文章将介绍如何使用 IBM® Rational Team Concert™ 来执行代码审查(code review)。基于代码审查的结果,这一过程或者提交构建版本进行编译,或者停止并报告代码审查错误。

这一过程基于两个构建定义:

  • 针对 z/OS® 平台的定义,负责编译主机程序
  • 运行在 Microsoft® Windows® 平台的构建定义,并组织以下任务:
    • 执行代码审查
    • 基于代码审查的结果,提交 z/OS 构建
    • 报告错误

代码审查使用 IBM® Rational® Software Analyzer 引擎,这一产品集成在:

  • IBM® Rational® Application Developer for C++ and Java® rules
  • IBM® Rational® Developer for System z® for COBOL rules
  • IBM® Rational® Programming Patterns for Pacbase rules。

在本文所描述的这一示例探讨了一个质量控制过程,该过程在 IBM Rational Developer for System z 中使用 COBOL 规则进行定义。

本文的内容并不包括如何如何建立一个运行在 z/OS 之上,用于编译主机程序的 IBM Rational Team Concert 依赖构建。而假定 z/OS 构建已经就位,并且工作状态良好。

这篇文章描述了如何建立主构建(main build),这一主构建负责组织代码审查及主机构建。这一构建由一个基于 Jazz™ Build Engine 的构建定义来支持。它运行在 Windows 上。

构建是通过基于 Ant 的脚本来定义的,该脚本执行了许多步骤,后面将会进行叙述。

虽然这篇文章基于一个使用 COBOL 资源的示例,但您也可以在其他的上下文里应用相同的步骤,例如 C++ 或 Java 编程语言。质量控制引擎(quality control engine)内在提供了针对这些编程语言的规则。例如,在 Java 上下文中,有些专门用于主机应用的步骤就可以跳过。

示例场景的功能性上下文

经过一个成功的开发阶段之后,代码将会被升级(promote)到一个质量认定环境。在它可以被升级到质量认定环境之前,它必须先通过一个代码审查(code review)。

这一场景涉及到团队构建(team build)。您可以采用同样的步骤实现一个个人构建(personal build),但需要更多的时间。

假定代码每一次被升级时它都会被检查是否合格。因此,当前的代码审查将会着重关注于程序从上一次升级以来所发生的变更。这一场景使用一个依赖构建(dependency build)

这一简单场景为整个应用度量了完整性(integrity)。遵照代码审查规则而引致的任何失败,都会禁止代码进行升级。在这一步骤里,如果代码审查侦测到一个严重错误,则编译构建将不会被提交。

在应被代码审查检查的规则里,一些规则从属于 Rational Programming Patterns 设计(VisualAge Pacbase 模型)。为了处理这些规则,Rational Software Analyzer 引擎需要使用内部的 Rational Programming Patterns 索引。这些索引并不需要是最新的,可以通过 RPP 同步任务进行更新。当前,IBM Rational Programming Patterns 的命令行只提供给 Windows 平台。因此,在这一场景中,Jazz Build Engine 被定位在 Windows 环境。

示例场景的技术上下文背景

如果图 1 所示,示例场景是在一台运行 Windows 7 的笔记本电脑上实现的。使用了两个不同的 VMware 镜像:

  • 基于 Linux® 的 VMware 镜像:
    • 安装了 Rational Development and Test Environment for System z,并提供一个主机环境(mainframe environment)来编译 COBOL 程序。
    • 安装了 Linux 平台的 Rational Team Concert server
    • z/OS 构建引擎以及由在 Rational Team Concert 中定义的构建引擎所支持的构建定义。
  • 基于 Windows 7 的 VMware 镜像:
  • 安装了面向 Rational Developer for System z 的 Eclipse 客户端、Rational Team Concert Enterprise Edition、Rational Programming Patterns。
  • 安装了 Windows 平台的 Jazz Build Engine。
  • Windows 构建引擎以及由在 Rational Team Concert 中定义的构建引擎所支持的构建定义。
图 1. 示例场景的技术上下文背景
示例场景的技术上下文背景
示例场景的技术上下文背景

使用了以下软件:

  • Rational Team Concert Enterprise Edition v4.0.3
  • Rational Developer for System z v9.0
  • Rational Programming Patterns v9.0

本文可获得的额外信息

您可以下载本文所使用或所生成的包含所有文件的压缩文件。表 1 显示了文件目录的结构。所生成文件的文件名用粗体显示。

表 1. 可下载压缩文件的目录结构
目录文件注解
IBM_POT 主目录
BVAP-CQ 用于构建工作空间的本地下载目标目录
BUILD_PARAMETERS 保存构建参数的 IBM Rational Team Concert 组件
build.xml 与主构建相关的 Ant 脚本
CodeReview CodeReviewCde.bat 代码审查命令行脚本
CodeReview exportUserRules.dat 导出的代码审查规则
CodeReview transform_html.xsl 用于从 csv 转换成 html 文件的 XSL Transformation 转换
PreviewBuild buildPreview.properties 覆盖的构建属性
PreviewBuild transform_txt.xsl 用于从 xml 转换成 txt 文件的 XSL Transformation 转换
RppSync synch.bat IBM Rational Programming Patterns Synchronize 命令行脚本
Results 临时文件或所生成文件的目录
CodeReview report.html html 格式的代码审查结果
CodeReview TraceCQ.log 由 Ant 脚本所解析的代码审查日志
TIMESTAMP 由 IBM Rational Software Analyzer 所生成的结果
PreviewBuild buildableFiles.txt txt 格式的预览构建结果
PreviewBuild buildableFiles.xml 预览构建所生成的结果
RppSync TraceRppSync.log 由 Ant 脚本所解析的同步日志

实现构建引擎的 Ant 任务

第一个构建引擎运行在 z/OS 上。这一构建引擎支持声明为 Rational Team Concert 依赖构建(dependency build)的构建定义,用于编译 COBOL 工件。假定这一 z/OS 构建已经就位并且已经在工作。设想这一构建作为从属构建(subordinate build),因为它由主 Ant 脚本来驱动运行。

第二个构建引擎运行在 Windows 上。这一构建引擎支持由模板 Ant – Jazz Build Engine 所创建的构建定义。设想这一构建作为主构建(master build),因为它驱动提交所有不同的任务并请求构建。

主构建需要以下的步骤:

  • Jazz Build Engine 配置
  • Ant 脚本,由以下步骤序列组成:
    • 预览构建(preview build),用于定义可构建的文件。
    • COBOL 代码审查,用于限制可构建的文件。
    • 依赖构建(dependency build),用于在 z/OS 上编译 COBOL 源代码

Jazz Build Engine 配置

由于主构建由 Jazz Build Engine 来支持,您需要下载并安装一个 Windows 环境的 Jazz Build Engine。为了启动这一过程,使用如清单 1的命令。您也可以在本文可下载的压缩文件的 jbe-win.bat 文件中找到这一命令。

清单 1. jbe-win.bat 文件的内容
cd C:\RTC-BuildSystem-Toolkit-Win_4.0.3.0-RTC-I20130517-1856\jazz\buildsystem\buildengine\eclipse

jbe -vm "C:/Program Files/IBM/JazzTeamServer_403/server/jre/bin/java" -repository https://clmweb:9443/ccm/ -userId cblanchard -pass cblanchard -engineId bvap.jbe.engine.dev.win

在 Jazz Build Engine 启动之后,它将会等候请求,如图 2 所示。

图 2. Jazz Build Engine 等候请求
Jazz Build Engine 运行循环并等候请求
Jazz Build Engine 运行循环并等候请求

Windows Jazz Build Engine 的构建引擎

想了解一个构建引擎(Build Engine)是如何创建的,请查看 Jazz.net 文章“Getting started with Ant Builds on the Jazz Build Engine”。在本文里,构建引擎被命名为 bvap.jbe.engine.dev.win,如图 3 所示。

图 3. 构建引擎 bvap.jbe.engine.dev.win
构建引擎 bvap.jbe.engine.dev.win
构建引擎 bvap.jbe.engine.dev.win

Windows Jazz Build Engine 的构建定义

想了解一个构建定义(Build definition)是如何创建的细节,请查看 Jazz.net 文章“Getting started with Ant Builds on the Jazz Build Engine”。在本文里,构建定义被命名位 bvap.dev.TeamBuild_CodeReviewAndBuild,如图 4 所示。这一构建定义由先前创建的构建引擎来支持。

图 4. 构建定义:概览页签
构建定义:概览页签
构建定义:概览页签

这一构建定义为一个构建空间(Build Workspace)而定义,如图 5 所示。在这一示例中,构建空间仅仅被用于为代码审查提交构建(但当您提交一个构建进行编译时,,也可以重用相同的构建空间。)

图 5. 构建定义:JazzSourceControl 页签
构建定义:JazzSourceControl 页签
构建定义:JazzSourceControl 页签

需要了解的一点是,当一个构建被请求,在 Jazz Build Engine 接受了请求与先前版本的差异后,构建存储库工作空间的内容将会被 Jazz Build Engine 将会被在一个本地的沙箱。对于这一示例场景,沙箱被保存在 C:/IBM_POT/BVAP-CQ 目录中。

这一构建定义运行这一示例场景特定的 Ant 脚本,如图 6 所示。

图 6. 构建定义:Ant 页签
Ant 页签上的构建定义文件以及工具箱
Ant 页签上的构建定义文件以及工具箱

Build file 域被填上了 Ant 脚本的路径,这将在下一步骤中进行描述。

导出代码审查规则

在这一示例中,代码审查是通过命令行启动的。

当您运行代码审查应用程序命令时,您必须指定参数,例如需要查看的规则文件的路径。也就是说,非常有必要导出代码审查规则到一个 .dat 文件里。

对于这一示例,规则文件包含了不同的 Rational Programming Patterns 规则,包括一个用户编写规则。您可以查看规则文件 exportUserRules.dat 的内容,如清单 2 所示。exportUserRules.dat 文件被包括在本文所包括的可下载 zip 文件里。

清单 2. exportUserRules.dat 文件的内容
rpp.codereview.cobol.rules.DfhRespRule
rpp.codereview.cobol.rules.DfhRespRule.variable.SEVERITY,1
...
pluginprojectforcobolcodereview90.CobolRule
pluginprojectforcobolcodereview90.CobolRule.variable.SEVERITY,2
...
com.ibm.pdp.qualitycontrol.cobol.rules.RppCicsLinkStatementRule
com.ibm.pdp.qualitycontrol.cobol.rules.RppCicsLinkStatementRule.variable.SEVERITY,1

想了解如何导出规则到一个 .dat 文件方面的更多信息,请查询“Rational Software Developer for System z information center“。

这个系列文章的第二部分将介绍如何使用一个运行在 Jazz Build Engine 上基于 Ant 的脚本,build.xml,来定义主构建(master build)。

致谢

本文作者向 Nicolas Dangeville、Benoit Jaunin 及 Tony Chen Zhang Hong 为本文所涉及功能进行的实现工作致谢,并感谢 Jean-Yves Baudy、Christian Chalumeau、Hervé Le Bars、Stéphane Leroy、Samira Bataouche 及 Vincent Trébuchon 为本文所作的审阅。


下载资源


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=994238
ArticleTitle=建立一个 Jazz Build Engine 来运行 Ant 脚本: 第 1 部分. 设置构建定义
publish-date=12302014