《ORACLEADF开发详细介绍》由会员分享,可在线阅读,更多相关《ORACLEADF开发详细介绍(316页珍藏版)》请在金锄头文库上搜索。
1、Oracle ADF 开发必读:第 1 部分借助 Subversion 进行版本控制:在单用户项目中创建信息库了解如何在单用户或是团队工作环境下使用开源版本控制系统 Subversion 管理您的 Oracle JDeveloper 11g项目。在本文中,将学习如何在单用户环境下创建信息库并开始使用 Subversion 进行版本控制。作者:John Stegeman您是否曾经在制作文档(例如学校的学期论文)时,为了能回到之前版本保存了许多份副本?可能您在编程项目中也做了同样的事情,保存多份您修改过的源代码副本,以便出错时可回到之前稳定的版本。如果您做过这样的事情,您实际上已经使用了版本控制的
2、初级形式。然而,面对非常琐碎的项目时,您很快就会觉得这个简单的办法已不适合。当您在团队环境下工作时,您还会发现这种初级方法在使版本更改在团队成员间共享以及进行实时跟踪上的不足。开发项目使用正式的版本控制系统作为最佳实践已经很长时间了。版本控制系统对团队、对个人都有很多优势: 可以实时跟踪构件(源代码文件、文档、图像以及类似构件)的不同修订版;而且,可以轻松检索到构件的旧版本。 在团队环境中,由版本化构件形成的信息库可供整个团队使用。 每次修订都会生成相应信息(元数据和注释),对修订进行批注。甚至对于简单的单一开发人员项目,使用标准的版本控制系统的优势也非常明显。本文向您介绍了如何在 Oracl
3、e JDeveloper 11g中使用非常流行的版本控制系统 (Subversion)。为什么使用 Subversion?现在市面上有很多款版本控制系统,有免费的,也有付费使用的。您可能听说过其中的一些,如 CVS、git、Microsoft Visual Source Safe、Perforce、Rational ClearCase 以及 Serena Dimensions 等等。在所有可选产品中,您为什么要选择 Subversion?以下列出了一些我为我的基于 Oracle 应用开发框架 (Oracle ADF) 的项目选择 Subversion 的原因: 它是免费的。我以前的一个同事常说
4、:“免费的,我可不敢用”,但是 Subversion 却是一款非常好用的免费软件。 它被广泛接受并公认为行业领先的解决方案。一项最近的 Forrester 研究报告显示 Subversion 是这一领域的唯一领跑者。 Oracle JDeveloper 11g支持该软件。虽然您可以通过使用系统的本地客户端进行交互在 Oracle JDeveloper 中使用任何一款版本控制系统,但拥有与 IDE 集成的经验将会让事情变得简单些。 Subversion 中的所有提交都是不可分割的。当您“提交”或“签入”您对 Subversion 信息库的更改时,您的所有更改将全部成功提交,或者全部都未提交。这在
5、 Oracle ADF 项目中尤为重要,在此类项目中,一个逻辑对象(例如 Oracle ADF 业务组件)可能由多个物理文件组成。如果提交不是不可分割的(例如,在 CVS 中),网络连接中的故障可能会导致某个逻辑对象只有部分文件得到更新,而剩下的文件则变为一组不可用的代码。 它支持目录和文件的版本化。对目录的添加、删除和移动的跟踪和对单一文件的此类操作是相同的。 它支持为文本文件和二进制文件进行基于差别的跟踪。大多数版本控制系统对文本文件只存储不同修订版中的差异;而 Subversion 对二进制文件也做同样的处理,这意味着减少了信息库对磁盘空间的需求。Subversion 概念由于不同的版本
6、控制系统使用不同的术语,有时候还会有不同的修订版管理方法,因此让我们来了解一些主要的 Subversion 概念:信息库位于 Subversion 中心位置,用于存储文件及其修订版。一些版本控制系统(如 git)使用分散式信息库,而 Subversion 却使用集中式的方法。工作副本是信息库中部分或全部文件的本地副本,从信息库复制到用户的本地设备以供修改。从信息库获取工作副本的流程叫做“签出”。Subversion 使用复制-修改-合并范例来处理团队环境下的更改。一些其他的版本控制系统使用锁定-修改-解锁范例,因此,用户必须先锁定要修改的文件并在完成修改后解锁。虽然 Subversion 也支
7、持这种方法,但通常只用于二进制(非文本)文件。通过 Subversion, 多个用户可以同时对同一文件进行修改;这种情况下,多个更改将被合并(自动或手动)。一本制作精良、详细解释了这些概念的免费电子书现已提供下载。安装软件并设置信息库您需要首先设置信息库并提供对它的访问,然后才能使用 Subversion 存储应用程序修订。Subversion 提供三种主要的信息库访问方式: 通过本地文件系统(文件:协议) 通过专用的 svn:网络协议 通过配置有相应模块(mod_dav 和 mod_dav_svn)的 Apache HTTP 服务器尽管 Oracle JDeveloper 提供对创建本地信息
8、库并(通过文件:协议)访问它们的支持,但此方法只有在您是项目的唯一开发人员时才很有用。最常用的访问 Subversion 信息库的方法是通过 HTTP/HTTPS 协议(使用 Apache)。要创建信息库并通过 Apache 提供访问,您必须安装并配置一些软件或连接到一个已有 Subversion 信息库。对于我的一些 Oracle ADF 项目,我使用了提供 Web 界面来创建和管理信息库的商业 Subversion 托管服务;这可能是一个非常方便的选择,因为托管公司将会为您管理备份并且还会经常提供与问题跟踪软件的集成。如果您希望创建您自己的信息库,您将需要安装并配置 Subversion
9、软件,以及 Apache 和所需模块。许多 Linux 发布版本带有已配置的 Subversion 和 Apache。针对 Microsoft Windows,一个名叫 VisualSVN 的公司创建了一个用于安装 Subversion 软件的 Windows 安装程序、一个预配置的 Apache HTTP 服务器,以及一个易于使用的管理控制台。当然,您可以单独安装 Subversion 和 Apache HTTP 服务器并使用命令行信息库管理工具来创建信息库,但使用 VisualSVN Server ( 是一种更快捷的方法。VisualSVN Server 的安装非常简单;只需下载安装程序并
10、运行。我提供了该安装中重要部分的屏幕截图,包括指定信息库的存储路径,Apache HTTP 服务器的端口以及 Subversion 服务器应该在哪里获取其用户和组的信息。我指定了一些适用于独立安装的选件,使用 HTTP(不是 HTTPS),并且选择管理我自己的用户和组而不是使用 Windows 用户和组:安装很快完成,并且会创建一个名为 Visual SVN Server 的 Windows 服务。在安装结束时,您将会看到启动 VisualSVN Server Manager 的选项:在 VisualSVN Server Manager 中,您将会看到Repositories、Users和Gr
11、oups节点。在本文中,只需右键单击Repositories节点并在上下文菜单中选择Create New Repository.即可创建一个名为 otn 的信息库:在 Create New Repository 对话框中,只需填写信息库的名称并选中创建默认信息库结构的复选框(稍后将介绍有关该选项的更多信息):这就是创建您的第一个 Subversion 信息库的全部操作!如果您在 VisualSVN Server Manager 中扩展 otn 信息库,您将会看到三个目录:“trunk”、“branches”和“tags”。此三文件夹顶层结构是构建 Subversion 信息库的惯用方法。虽然您
12、也可以使用其他任何您喜欢的顶层结构,但 trunk-branches-tags 结构是最常用的,而且我也建议您使用这种结构。每一个目录的用途如下: trunk 主线开发将在这里进行,实际上,有人更愿意视它为“主线”。 tags 识别应用程序发布生命周期中的重点包括对特定的代码修订进行标记(稍后将对此进行详细介绍)。按照惯例,已标记的修订存储在 tags 目录中。 branches 在繁琐的开发项目中,有些时候,源代码由于很多原因(例如开发新特性而不影响 trunk 或稳定代码以便发布)需要进行“分支”处理。按照惯例,分支创建在 branches 目录中。为表明 Subversion 如何处理多
13、用户,我还针对本文创建了两个用户,右键单击 VisualSVN Server Manager 中的Users节点并选择Create User.。我的两个用户名为 john 和 josephine。将您的应用程序添加到信息库中(导入)既然您已经拥有一个 Subversion 信息库,您可以将接受版本控制的应用程序放入新信息库中(该过程称为导入)。Oracle JDeveloper 提供的 GUI 界面让该任务变得非常简单。在本文中,我使用包含两个标准项目(Oracle ADF 业务组件模型和适用于 UI 的 ViewController)的简单 Oracle ADF Fusion Web 应用程
14、序;如果您希望按照我的方法进行操作,您可以在本文结尾的“资源”链接部分下载该应用程序。要让应用程序接受版本控制,应确保在 Oracle JDeveloper 中选择了该应用程序;然后在 Oracle JDeveloper 的Versioning菜单中选择Version Application.:出现提示时,选择Subversion作为信息库的类型:如果您还没有定义任何 Subversion 连接,Oracle JDeveloper 将提示您创建一个 Subversion 连接。如果您已经定义一个或多个 Subversion 连接,您将需要从信息库连接列表中选择连接。本文中,我还没有定义任何连接
15、,所以 Oracle JDeveloper 提示我创建一个。要创建 Subversion 连接,您需要知道信息库的 URL。要使用 VisualSVN Server Manager 获得 URL,只需右键单击信息库并在上下文菜单中选择Copy URL to Clipboard:然后,您可以将 URL 粘贴到 JDeveloper 对话框中。在提供用户名和口令后,您可以单击Test Read Access以确保一切设置正确:导入您应用程序的下一步是指定承载您应用程序的信息库的目录。根据我们之前关于 Subversion 信息库常规结构的讨论,trunk 目录是开发主线所在的目录,所以这也是我们导入的应用程序的目标位置:下一步是指定您本地磁盘上的应用程序源目录;Oracle JDeveloper 通常会正确获取此信息,您不需要做出更改。在您对 Subversion 信息库执行操作时,为您的操作提供注释是一个很好的习惯;应用程序的初始导入也不例外,所以我们提供了一个有帮助的注释:导入的下一步是告诉 Subversion 我们希望它忽略的文件和目录。我们通常不希望生成的文件(例如类文件)、临时文件等存储在 Subversion 信息库中,所以我们需要告诉 Subversion 忽略它们。关于机制我们不需要了解太多,只需知道 Subversion 使用一个特殊的属性来识别应该忽