编译 Geronimo
然后,按照 Wiki上的指令从源代码编译 Geronimo。成功构建之后,Geronimo 工件将位于本地资源库。它们是构建示例应用程序所必需的。编译完 Geronimo 之后,查找 geronimo-deployment-plugin-1.0-SNAPSHOT.jar 文件,并将其安装到 $MAVEN_HOME/plugins 目录中,否则可能会看到如下消息:
Tag library requested that is not present: 'geronimo:deploy' in plugin: 'null'
安装 XDoclet 1.2.3
最后,需要将 XDoclet 1.2.3 安装到 Maven 资源库中。如果试图构建示例应用程序,会显示一条 Maven 消息,指明它无法找到一些其他的 XDoclet 1.2.3 工件,这时您可能需要下载 XDoclet 1.2.3(lib 包),并将 .jar 文件解压到位于 .maven/repository/xdoclet/jars 的本地 Maven 资源库中。如果您是 Windows 用户,应该在 C:\Documents and Settings\username 目录下查找该 Maven 目录。如果您是 UNIX 用户,应该在主目录下查找该目录。还应该通过将 maven-xdoclet-plugin-1.2.3.jar 添加到 $MAVEN_HOME/plugins 目录来安装 XDoclet Maven 插件。
成功构建
具备这些先决条件之后,构建过程应该能够顺利进行。当然,可以在进行上述工作之前尝试构建,查看 Maven 找不到哪些文件,然后只安装这些文件。可以尝试在示例应用程序的顶层目录中运行 Maven。首先,许多工件将被下载,最后,您将看到 BUILD SUCCESSFUL 消息。
要更多了解 Maven 做什么,研究一下 maven.xml 和 project.properties 文件。Maven 是面向目标的。它读取 maven.xml 并尝试满足顶层项目元素的默认属性中指定的所有目标。在本例中,它尝试满足部署目标指明为先决条件的所有事项;也就是说,它将尝试构建 .ear 文件,然后尝试停止和启动应用程序。应用程序的部署是通过上述的 Geronimo Deployment Maven 插件执行的。当然,Geronimo 服务器应该运行 —— 否则构建将失败,并显示如下消息:
Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException
[Root exception is java.rmi.ConnectException: Connection refused to
host: 10.0.0.7; nested exception is:
java.net.ConnectException: Connection refused: connect]
如果收到该消息,使用如下命令启动 Geronimo 服务器:
E:\geronimo-snapshot>java -jar bin\server.jar org/apache/geronimo/
DebugConsole org/apache/geronimo/RuntimeDeployer
该命令告诉 Geronimo 启动其服务器、DebugConsole 应用程序配置和 RuntimeDeployer 配置。
调试控制台
DebugConsole(参见 图 1)是可选组件,允许通过一个小 Web 应用程序(参阅 http://localhost:8080/debug-tool)查看 Geronimo 服务器中在运行什么。

图 1. Geronimo DebugConsole
