系列文章:使 Oracle Application Development Framework 和 Subversion 适应企业需求


第 2 部分:团队角色、变更控制工作流方案和初始 Oracle ADF 构建

作者:Chris Muir

这是由五部分组成的系列文章“使 Oracle ADF 开发和 Subversion 适应企业需求”的第 2 部分。内容涵盖:

  • 变更控制中的团队角色

  • 变更控制工作流方案以及初始 ADF 构建

  • 多个开发人员参与时的开发

团队角色

演练本文档中的变更控制方案时,将要确定一些团队角色。本部分初步总结了团队成员,以便清楚阐述系统生命周期中所需的角色。此外,本部分还应与后续方案部分一起阅读,以清楚了解对以下角色及其职责的要求:

  • SVN 管理员 — 负责 SVN 的设置和持续维护。

  • 应用程序开发主管 — 负责维护 SVN <app>\trunk,标记主干代码并将主干代码分支到单个应用程序的 <app>\branches\test 分支。

  • 一般开发人员 — 负责使用 SVN <app>\trunk 及其自己的单个应用程序的工作副本。

  • 一般测试人员 — 负责在测试环境中对应用程序进行测试。

  • 变更控制主管 — 负责从单个应用程序的 SVN <app>\branches\test 分支或 <app>branches\production 分支创建 EAR 文件。

  • 测试 Oracle WebLogic Server 管理员 — 负责在测试 Oracle WebLogic Server 上安装 EAR 文件和配置部署的应用程序。

  • 生产 Oracle WebLogic Server 管理员 — 负责在生产 Oracle WebLogic Server 上安装 EAR 文件和配置部署的应用程序。

注意,一个员工可以担当多个角色。


变更控制工作流方案

以下几部分详细说明了随着新的 Oracle JDeveloper Oracle ADF 开发开始,代码在 SVN 的支持下经过开发、测试和生产环境时的典型工作流方案。

初始 Oracle ADF 构建

提出新的变更请求 (CR) 以开始工作,例如 CR001。在您喜欢的变更控制系统中,您提出了以下条目来跟踪开发人员的工作:

CR 号

应用程序

说明

状态

分配给

CR001

Beanz

构建新的 Beanz 系统

开发

开发人员

 

提示:


Oracle Team Productivity Center (Oracle TPC) 是一个针对 Oracle JDeveloper 的应用程序生命周期管理 (ALM) 工具,使软件开发团队在使用 Oracle JDeveloper 开发应用程序时能够一起高效地协同工作。
 

除了 Oracle JDeveloper 的 SVN 集成之外,还通过在 Oracle TPC 中引入 Team Navigator 增强了团队开发,Team Navigator 提供与多个信息库(如变更控制、问题、错误跟踪)的集成,允许用户在 Oracle JDeveloper 中创建、查询和更新这些信息库中的构件。通过标记和关系的工作项协作和上下文链接等其他服务提高了用户生产效率。有关开发文件的上下文信息可以针对工作项进行保存并由用户恢复。

 

Oracle TPC 的使用已超出本文范围,但您可以在 Oracle 技术网 (OTN) 上的 Team Productivity Center 页面找到有关 Oracle TPC 的信息。


使用 Oracle JDeveloper 11g 的开发主管首先创建一个基本的 Oracle ADF 融合应用程序,这个应用程序包括一个 Model 项目和一个 ViewController 项目。这是在开发人员的本地计算机上完成的。

adfsvn2-1

然后通过选择 Versioning > Version Application 菜单将这个应用程序导入空的 SVN Beanz\trunk 中。这将打开 Import to Subversion 向导:

adfsvn2-2

在针对所选信息库连接的 step 2 of 6 中,选择要将现有应用程序导入其中的 trunk 分支:

adfsvn2-3 

Step 3 of 6 默认值为应用程序的根目录,将从此目录导入源代码。应为所有信息库操作输入注释,包括应用程序的这次初始导入。

 adfsvn2-4

其他步骤均可忽略,直接接受默认值。SVN Log 窗口显示使用信息库进行的 SVN 操作:

adfsvn2-5 

最后,由于默认情况下将发生中间工作副本签出,Application Navigator 将在每个文件旁边显示带版本的文件图标:

adfsvn2-6  

Versioning Navigator 中反映了签入 SVN 信息库的文件:

adfsvn2-7  

由多个开发人员进行的初始开发

当新的开发人员到岗时,会从 Beanz\trunk 将自己的应用程序工作副本签出到本地 PC。每个开发人员的工作副本都遵循沙坑概念,即开发人员在本地 PC 上构建和修改应用程序。

在 Oracle JDeveloper 的 Versioning Navigator 中,右键单击应用程序下的 trunk 目录,然后选择 Check Out 菜单。这将显示 Check Out from Subversion 对话框,您可以在其中指定本地存放代码的位置:

adfsvn2-8  

提示:


一个合理的问题是开发人员是否应统一在本地 PC 上签出工作副本的位置?有两个答案:首先,从 Oracle JDeveloper 的角度来看这确实无关紧要,因为无论应用程序放在 PC 上的什么位置,Oracle JDeveloper 都能自如地编译和运行这些应用程序。其次,默认情况下应用程序不应有任何硬编码路径,因为当应用程序部署到应用服务器时,无法保证服务器一定将应用程序放置在标准的文件系统位置。
 

关于 Oracle ADF 库以及如何附加这些库还有一点需要注意。本文稍后将对此主题进行介绍。


结果是您将在 Application Navigator 中看到带有变更控制图标的应用程序,与开发主管所见到的很相像:

 adfsvn2-9

从本质上说,开发代码将通过 Beanz\trunk 目录下的 SVN 信息库与其他开发人员共享。

开发人员遵循这样的做法:提交自己的更改并通过更新其工作副本来获取信息库中其他开发人员的新修复,或者,频繁删除自己的本地工作副本并签出完整的最新版本,以确保其拥有所有文件的最新副本。下图描述了这种签出、变更和提交的方案:

adfsvn2-10 

提示:


Oracle JDeveloper 11g 包括一个有用的可视化工具,便于了解代码的修订版本。在这个具体示例中,开发人员 1 通过在 EditBeanz.jspx 页中右键单击开发中的一个文件,然后选择 Versioning → Version Tree 来调用此工具,将显示这个特定文件的不同修订版:


adfsvn2-11

提示:


Oracle ACE 总监 John Stegeman 提供了有关如何使用 Subversion 的 ADF 必读,包括签出、提交、合并等,建议准备结合使用 SVN 和 Oracle JDeveloper 的所有开人员阅读此文。

假设在此期间,开发人员将使用内置 Oracle JDeveloper WebLogic Server 或使用开发部署配置文件通过 Oracle JDeveloper 将其应用程序直接部署到开发 Oracle WebLogic Server 上来测试应用程序。实际上,开发人员需要做的主要就是这一部分工作,与本文中描述的变更控制工作相反。

总结

在第 2 部分,我们研究了维护变更控制过程中的不同员工角色,然后先看了些不同的变更控制工作流方案,尤其是如何将 ADF 开发构建交给 Subversion 进行。在下一部分,ADF 开发完成之后,将研究如何将应用程序迁移到测试环境,以及如何在 Subversion 中完成此任务。

转到第 3 部分 | 返回系列目录



Chris Muir
是 Oracle ACE 总监、高级 Oracle 系统开发人员以及澳大利亚 SAGE Computing Services 的培训人员。在 2009 年,Chris 荣获了 Oracle Magazine 颁发的令人羡慕的年度 Oracle ACE 总监奖。他不仅具有近 10 年的传统 Oracle 开发环境方面的工作经验,最近在使用、培训和推广 Oracle JDeveloper 和 Oracle ADF 方面也硕果累累。他经常出席用户群活动,最近他加入了 ADF Enterprise Methodology Group 论坛,Oracle ADF 倡导者可以在此论坛中谈论 Oracle ADF 开发所面临的一些严峻挑战。