扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在学习示例应用程序之前,首先要详细了解一下将用于创建和部署该应用程序的三种技术。
Maven 是用于构建 Java 应用程序的应用程序,它从源代码一直构建到打包至 Web 站点。Geronimo 应用服务器是使用 Maven 应用程序的构建系统构建的。在它的核心内,Maven 的可扩展框架允许创建模块以执行构建软件组件时需要的一些动作。谈到 Apache Ant(Java 构建工具),Maven 的动作已经与使用 UNIX 命令 make 生成的结果进行了比较。Maven 脚本还允许将应用程序自动部署到正在运行的 Geronimo 服务器中。本文展示了如何使用 Maven 来将源代码打包到完整的 Java 2 Platform, Enterprise Edition (J2EE) 企业应用程序中。
Struts 是基于 Model 2 架构的 Web 应用程序框架。该混合架构最大程度地将业务逻辑和显示逻辑隔离。Struts 通过将业务逻辑隔离到纯 Java 类中来实现这一目标,纯 Java 类操作数据,并提供了丰富的标记库,该库可用于在编写 JavaServer Pages (JSP) 时显示数据。(在无数可用的 Web 开发框架中,许多框架都有很高的人气,比如 Tapestry 和 JavaServer Faces,而 Struts 一直是我偏爱的一个。)
XDoclet 起源于存在已久的 Java 文档工具 Javadoc。XDoclet 开发人员最初以一种新颖的方法使用 Javadoc,即使用专门的注释来生成可以被编译成源代码的模型。他们从 Javadoc 的实际使用抽身而出,生产出他们自己的变种,叫做 Xjavadoc。但是在 XDoclet 早期,仍然需要在源代码的 Javadoc 注释中使用标记来自动生产自动生成的代码。编写 J2EE 应用程序中的源代码和部署描述符文件可能十分冗长乏味。对于每一百行左右的 Java 代码,预计可以生成至少三倍多的支持 J2EE 描述符代码来完成工作。为了大大减少开发多层企业应用程序的痛苦,XDoclet 伸出援手,提供了代码标记和代码生成以使大部分部署描述符自动生成。这样就隐藏了 J2EE 的大量复杂性,但您要清楚代码生成器在构建什么,因为当事情没有如期进行时,您必须检查它。
部署计划
正如在简介中提到的,Maven 被 Geronimo 团队用来构建整个应用服务器。您可以利用 Maven 构建工具的强大功能来编译应用程序源代码,执行代码生成(需要 XDoclet 的帮助),绑定企业应用程序模块,并最终将其部署到正在运行的 Geronimo 服务器中。
该过程以三个文件开始。第一个文件 project.xml 定义什么是所谓的项目对象模型(Project Object Model,POM)。它列出应用程序的相关信息,包括应用程序名称、编写者、版本号、对构建应用程序非常重要的依赖关系,以及对如何构建应用程序的概述。出于本文目的,我们将主要研究 POM 的依赖关系部分。
上的指定资源库中下载构建应用程序所需的工件。iBiblio就是这样一个资源库,它包含数百个开放源代码 Java 库和支持文件,以及这些库的 POM 信息。它收集了大量信息,目的只有一个,即简化应用程序构建过程中 Java 开发人员的生活。电话簿应用程序 project.xml 文件的依赖关系部分由 23 个依赖关系组成,其中一半是 .jar 文件,用于支持 Struts 和 DisplayTag 标记库。其余的依赖关系主要是 XDoclet 要求。不使用 Maven,每个依赖关系都需要与示例应用程序绑定在一起。
Maven 只在第一次编译应用程序时下载所有依赖的工件。以后的编译运行利用 Maven 的本地资源库(已下载工件的本地高速缓存,通常位于 $HOME 目录的 .maven 目录下)来获得工件。
安装 Maven 1.0.2
我们的示例应用程序需要对 Maven 进行一些初始设置以使一切正确工作。首先,需要安装 Maven 1.0.2(参阅 参考资料 中的 Maven Web 站点链接)。安装完成后,在命令行输入 maven,将看到类似如下的信息:
E:\Documents and Settings\Neal\My Documents\eclipse\workspace\Phonebook> maven
__ __
| \/ |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \ ~ intelligent projects ~
|_| |_\__,_|\_/\___|_||_| v. 1.0.2
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者