从头构建Apache Geronimo
【IT168 技术文章】
许多新老开发人员正在投身于不断增长的 Apache Geronimo 热潮。因此,对于希望集成修改或定制模块的开发人员,构建 Geronimo 的能力越来越重要了。不幸的是,构建 Geronimo 并不容易。它要求学习新的构建脚本以及构建应用程序。幸运的是,通过这个详细的分步指南,您就可以理解如何从头构建 Apache Geronimo 源代码。
简介
Apache Geronimo 作为一个开放源码解决方案正在迅速发展,新的 1.0 版本已经完成了,Geronimo 已经度过了原始时期。像 Geronimo 这样的大型开放源码解决方案总是受到大量开发人员的关注。开发人员无论是进行提交,还是为了内部使用或业务使用而进行开发,他们都需要更多地了解 Geronimo 的结构,从而掌握构建过程。
本文讨论以下的 Geronimo 构建主题:
1.如何下载和安装在构建过程中需要使用的构建应用程序,即 Apache Maven 和 Subversion(SVN)。
2.了解源代码和二进制标准发行版中的相关 Geronimo 目录,以及它们与 Geronimo 整体的关系。
3.从头构建 Geronimo 并登录 Geronimo Console。
4.使用 SVN 从 svn.apache.org 签出 Geronimo 的最新版本,然后登录 Geronimo Console 来测试和运行它。
开始
本文使用 Geronimo 1.0 版,并假设您不了解 Geronimo 或 Geronimo 构建过程。要构建 Geronimo,需要 Java? 1.4.2_08(或更高版本,但是要低于 1.5)。从 Sun Microsystems 公司下载 Java 代码。
在下载 Java 之后,下载 Geronimo 1.0 版。在 Binaries 和 Source Code 部分中,选择 .zip(Microsoft? Windows? 或 Linux?)或 .tar.gz(Linux)文件。
当下载完成之后,将 .zip 或 .tar.gz 文件解压在同一目录中,这样 Geronimo 安装就准备好了。
因为 Geronimo 使用 Apache Maven 作为构建工具,所以还需要从 apache.org 下载 Maven 1.1 Beta 2。按照简单的 安装说明 进行操作即可!
需要下载的最后一个应用程序是 Subversion,将使用它从 Apache Geronimo Subversion 存储库签出最新的源代码树(HEAD)。
另外,确保添加以下环境变量:
·MAVEN_HOME 应该是 Apache Maven 安装的根目录。
·JAVA_HOME 应该是 Java 安装的根目录。
最后,确保以下目录在 PATH 变量中:
·<maven-install-dir>/bin
·<geronimo-install-dir>/bin
·<java-install-dir>/bin
·<subversion-install-dir>/bin
关于在 Windows 和 Linux 系统上在 PATH 中添加目录或创建新环境变量的信息,请参见 参考资料 中的链接。
Geronimo 和初始构建
在下载的二进制和源代码安装中有几个目录。二进制下载包含 Geronimo 的核心,这是运行和使用 Geronimo 所必需的。源代码下载包含所有 Geronimo 源代码,包括用于构建整个树的 Maven 构建脚本。首先,我们来看看二进制发行版,然后是源代码发行版。
二进制发行版
二进制发行版的文件/目录比较少,但是比较大,因为它们是二进制形式的。下面列出相关目录:
·bin —— 大多数开发人员应该熟悉这个目录。其中包含可执行文件。
·config-store —— 想知道 Geronimo 的部署者将应用程序的 .war 和其他文件放在哪里吗?就在这儿。
·doc —— GBeans 的一些计划或配置放在这里。
·repository —— 这里包含构建和运行 Geronimo 所需的依赖项。
·var —— 这里存储配置和属性文件,以及内置的 Derby 数据库系统。
对二进制发行版就介绍这么多。更多信息请参见 参考资料 中的链接。下面介绍源代码发行版。
源代码发行版
在这个发行版中有几个文件/树,这是源代码树的常见情况 —— 有许多有意思的代码!下面列出优异目录:
·applications —— 容纳 Geronimo 附带的各种标准应用程序。关于每个应用程序的情况,请参见 参考资料 中的链接。
·modules —— 包含几个目录,其中包含所有 Geronimo 源代码。Assembly 是主构建目录;但是,也可以单独构建每个目录。
作为开发人员,您应该非常熟悉 modules 目录中打算修改的子目录。接下来,对 Geronimo 进行初始构建。
初始构建
执行 Geronimo 的初始构建是很容易的。只需打开控制台,进入 <geronimo-install-dir>,输入 maven new。但是,如果修改了代码,就应该重新构建树。这通过输入 maven m:clean m:clean-repo new 来完成。
可以在以上命令中添加 "-Dmaven.test.skip=true -Dmaven.itest.skip=true",从而跳过测试。我不建议在对树进行修改之后跳过测试,但是在某些情况下这可以节省时间。记住,跳过内置的测试可能会影响系统的安全性和功能性。在输入以上命令之后,构建就开始了,如 图 1 所示。
图 1. 构建 Geronimo

在构建过程中,您会注意到 Maven 正在下载各种 .jar 文件和其他依赖文件。我提到这一点是因为在我第一次构建 Geronimo 时从 Maven 收到了一个错误,它指出无法获得某些依赖文件。这大大妨碍了我使用 Geronimo 核心来调试我的代码。在这一次使用 Maven 构建 Geronimo 时,我没有收到这种错误。但是,为了以防万一,如果遇到 Maven 无法获得某些依赖项的问题,请采取以下步骤:
1.进入 <geronimo-install-dir>。
2.将 repository 目录中列出的所有目录复制到您的 HOME 目录中的 .maven/repository 目录。
3.再次构建 Geronimo。
现在,Maven 的运行应该没有问题了,因为它从 Geronimo 安装获得了所有必要的依赖文件。如果 Maven 需要什么文件,就能够找到它们。
成功的构建如 图 2 所示。
图 2. 成功的构建

当构建过程完成时,新的构建没有保存在 ./bin 目录中,因为 ./bin 目录不是源代码发行版的一部分。因此,构建 Geronimo 并不会以任何方式影响系统上现有的 Geronimo 构建,无论是开箱即用的 Geronimo 构建,还是已经替代了开箱即用构建的任何构建。
下面来测试这个构建。
测试初始构建
要运行这个新构建的服务器,应该进入这个目录:<geronimo-install-dir>\assemblies\j2ee-tomcat-server\target\geronimo-1.0。
打开控制台并输入 java -jar bin/server.jar。
服务器现在应该启动了,如 图 3 所示。
图 3. 启动 Apache Geronimo

既然 Geronimo 启动了,现在打开一个浏览器并指向 http://localhost:8080/console。
现在,应该会看到 Geronimo Console,如 图 4 所示。
图 4. Geronimo Console

到处随便浏览一下。注意,默认的用户名是 system,密码是 manager。
现在,作为开发人员或调试人员,您可能希望获得最新最好的代码,因此需要使用 SVN 签出整个树。
使用 SVN 签出最新的 Geronimo 源代码树
对于正在开发先进技术的开发人员,掌握最新的代码是很重要的。对于 Geronimo 这样的项目,每次发布都有很重要的更新。每天或每周都可能出现新的 bug 补丁或新特性。使用 SVN 签出并构建整个源代码树,就可以掌握最新的代码,可以利用 Geronimo 开发人员已经开发的所有新特性。
用 SVN 签出最新的 Geronimo 源代码是很容易的。前面已经安装了 SVN。为了签出最新最好的代码,进入要放置签出的 Geronimo 源代码树的目录,并输入 svn checkout http://svn.apache.org/repos/asf/geronimo/trunk geronimo。
Geronimo 树被下载(签出)到您的计算机上,如 图 5 所示。
图 5. 签出最新的 Geronimo 源代码树
要获得进一步的更新,可以在 ./geronimo 目录(也就是将 Geronimo 从 svn.apache.org 签出到的目录)中输入命令 svn update。
接下来,清理并构建发行版。进入刚从 svn.apache.org 签出的新的 Geronimo 目录,输入 maven m:clean m:clean-repo new -Dmaven.test.skip=true -Dmaven.itest.skip=true。
注意,这一次 Maven 会下载新的依赖文件,所以可以得到最新的开发成果!像以前一样构建源代码,这样就得到了 Geronimo 的最新版本。
接下来,测试新的构建。
测试最新的构建
测试这个构建与测试从 Apache Geronimo 下载的源代码的初始构建相似,只是这一次是测试通过 SVN 接收到的最新源代码。在控制台中输入以下命令来启动 Geronimo:
java -jar <svncheckout-geronimo-dir>/assemblies
/j2ee-installer/target/geronimo-1.0-SNAPSHOT/bin/server.jar
好了!服务器启动了。现在进入 Geronimo Console。像以前一样,打开浏览器并指向(http://localhost:8080/console)。见 图 6。
图 6. 在 Geronimo 的最新版本中查看 Geronimo Console

默认的用户名和密码仍然是 system 和 manager。
现在,您的计算机上已经安装了 Geronimo 应用服务器的最新版本,并正在运行。
结束语
您现在已经掌握了 Geronimo 源代码树的构建,可以顺利地构建 Geronimo 了。还使用 SVN 从 svn.apache.org 签出了 Geronimo 源代码树的最新版本,并成功地构建和在服务器上运行。如果您打算开发 Geronimo 代码或者在 Geronimo 源代码树中进行修改或添加,那么通过 Geronimo 开发人员邮件列表聚集在一起的社区会欣赏您的努力。参见 参考资料 中 Geronimo 邮件列表的链接。
参考资料
学习
·您可以参阅本文在 developerWorks 全球站点上的 英文原文
·阅读 Geronimo 叛逆者,这个专栏介绍了两位 Geronimo 优异提交者。
·通过 developerWorks 上的访谈录(2005 年 5 月)从 Jeremy Boynes 那里直接了解 Geronimo。
·阅读 “ 了解 Geronimo 的部署架构”(developerWorks,2005 年 8 月),了解 Geronimo 配置和部署模型背后的概念。
·阅读 “创建、部署和调试 Apache Geronimo 应用程序”(developerWorks,2005 年 5 月),学习如何使用 Eclipse 工具使应用程序开发更轻松。
·浏览 Apache Geronimo Java API。
·阅读 Aaron Mulder 编著的 Apache Geronimo Development and Deployment。
·阅读 power of GBeans,了解人们的意见。
·阅读另一篇来自 apache.org 成员的 GBeans 文章。
·利用 apache.org 上的这个链接,了解更高级的 Geronimo 构建方法。
·学习如何在 Linux 和 Windows 上修改或创建 PATH。
·学习如何在 Linux 和 Windows 上创建新的环境变量。
·进一步了解如何使用 Subversion 获得 Geronimo 源代码。
·对于初学者和有经验的用户,在 developerWorks 的 马上开始使用 Apache Geronimo 部分中都可以找到有用的参考资料。
·加入 Apache Geronimo 邮件列表。
·关于 Geronimo 的更多信息,请阅读以下内容:
·“构建更佳的 J2EE 服务器,开源之路”(developerWorks,2005 年 5 月)
·“Geronimo!第 1 部分: 支持 J2EE 1.4 引擎”(developerWorks,2005 年 5 月)
·“Geronimo!第 2 部分: 驯服 J2EE 1.4 这匹野马”(developerWorks,2005 年 5 月)
·“将数据库连接到 Geronimo 应用服务器的三种方法”(developerWorks,2005 年 6 月)
·“创建、部署和调试 Apache Geronimo 应用程序”(developerWorks,2005 年 5 月)
·“Apache Geronimo 揭密”(developerWorks,2005 年 8 月)
·访问 developerWorks 开放源码专区,这里有丰富的 how-to 信息、工具和项目更新,可以帮助您利用开放源码技术进行开发并将其用于 IBM 产品。
·访问 developerWorks Apache Geronimo 项目区,这里的文章、教程和其他参考资料可以帮助您马上开始用 Geronimo 进行开发。
·浏览 developerWorks 开放源码专区中的所有 Apache 文章 和 免费的 Apache 教程。
获得产品和技术
·下载 IBM WebSphere? Application Server Community Edition, Version 1.0 的免费副本,这是一种在 Apache Geronimo 开放源码技术之上建立的轻量级 J2EE 应用服务器,设计目的是帮助加快开发和部署工作。
·了解 IBM Support for Apache Geronimo,它为开发 Apache Geronimo 应用程序提供了专家级技术支持。
·使用 IBM 试用软件 改进您的下一个开放源码开发项目,这些软件可以下载或者通过 DVD 获得。
·下载 Apache Geronimo, Version 1.0。
讨论
·参与论坛讨论。
·通过 Apache Geronimo blog 随时关注 Geronimo 开发的进展。
·通过参与 developerWorks blogs 加入 developerWorks 社区。