开发流程

目录

开发流程

尽管应用程序开发可以采用多种形式,但本手册提出了一种相当通用的流程,用于使用 Tomcat 创建 Web 应用程序。以下部分重点介绍了您作为代码开发人员将执行的命令和任务。当您有多个程序员参与时,只要您拥有适当的源代码控制系统和关于在任何给定时间谁正在处理应用程序的哪些部分的内部团队规则,相同的基本方法同样适用。

以下任务描述不假定任何特定源代码控制系统,而只是识别通常在何时以及执行哪些源代码控制任务。您需要为您的系统识别适当的源代码控制命令。

为开发一次性设置 Ant 和 Tomcat

为了利用与Manager Web 应用程序交互的特殊 Ant 任务,您需要执行以下任务(无论您计划开发多少个 Web 应用程序)。

  • 配置 Ant 自定义任务。Ant 自定义任务的实现代码位于名为 $CATALINA_HOME/lib/catalina-ant.jar 的 JAR 文件中,该文件必须复制到 Ant 安装的 lib 目录中。

  • 定义一个或多个 Tomcat 用户Manager Web 应用程序在安全约束下运行,要求用户已登录,并且已向其分配安全角色 manager-script。如何定义此类用户取决于您在 Tomcat 的 conf/server.xml 文件中配置的领域 - 有关更多信息,请参阅领域配置操作指南。您可以使用 manager-script 角色定义任意数量的用户(具有您喜欢的任何用户名和密码)。

创建项目源代码目录

第一步是创建一个新的项目源目录,并自定义您将使用的 build.xmlbuild.properties 文件。目录结构在 上一部分 中进行了描述,或者您可以使用 示例应用程序 作为起点。

创建您的项目源目录,并在您的源代码控制系统中对其进行定义。这可以通过一系列类似以下的命令来完成

cd {my home directory}
mkdir myapp <-- Assumed "project source directory"
cd myapp
mkdir docs
mkdir src
mkdir web
mkdir web/WEB-INF
cvs or svn or git ... <-- Add this structure to the appropriate repository

为了验证项目是否在源代码控制存储库中正确创建,您可能希望将项目检出到一个单独的目录,并确认是否存在所有预期内容。

接下来,您需要创建并检入 build.xml 脚本的初始版本,以用于开发。为了快速轻松地入门,请将您的 build.xml 基于此手册中包含的 基本 build.xml 文件,或从头开始编写代码。

cd {my home directory}
cd myapp
emacs build.xml     <-- if you want a real editor :-)
cvs or svn or git ... <-- Add this file to the repository

下一步是自定义 build.xml 脚本中命名的 Ant 属性。这可以通过在项目的顶级目录中创建一个名为 build.properties 的文件来完成。受支持的属性列在示例 build.xml 脚本内的注释中。通常,您至少需要定义 catalina.home 属性,该属性定义 Tomcat 的安装位置,以及管理器应用程序的用户名和密码。您最终可能会得到类似以下内容

# Context path to install this application on
app.path=/hello

# Tomcat installation directory
catalina.home=/usr/local/apache-tomcat-10.1

# Manager webapp username and password
manager.username=myusername
manager.password=mypassword

通常,您希望将 build.properties 文件检入源代码控制存储库,因为它对于每个开发人员的环境都是唯一的。

现在,创建 Web 应用程序部署描述符的初始版本。您可以将 web.xml 基于 基本 web.xml 文件,或从头开始编写代码。

cd {my home directory}
cd myapp/web/WEB-INF
emacs web.xml
cvs or svn or git ... <-- Add this file to the repository
请注意,这只是一个示例 web.xml 文件。部署描述符文件的完整定义在 Servlet 规范 中。

编辑源代码和页面

在开发和维护期间,编辑/构建/测试任务通常是您最常见的活动。以下一般原则适用。如 源组织 中所述,新创建的源文件应位于您的项目源目录下的相应子目录中。

您应定期刷新您的开发目录,以反映其他开发人员执行的工作。

要创建新文件,请转到适当的目录并创建文件。当您对其内容感到满意(在构建和测试成功后),将新文件添加到存储库中。例如,要创建新的 JSP 页面

cd {my home directory}
cd myapp/web        <-- Ultimate destination is document root
emacs mypage.jsp
... build and test the application ...
cvs or svn or git ... <-- Add this file to the repository

在包中定义的 Java 源代码必须按与包名称匹配的目录层级(在 src/ 子目录下)进行组织。例如,名为 com.mycompany.mypackage.MyClass.java 的 Java 类应存储在文件 src/com/mycompany/mypackage/MyClass.java 中。每当您创建新文件时,请不要忘记将其添加到源代码控制系统中。

要编辑现有的源文件,您通常只需开始编辑和测试,然后在一切正常后提交已更改的文件。

构建 Web 应用程序

当您准备编译应用程序时,请发出以下命令(通常,您会希望打开一个 shell 窗口,该窗口设置为项目源目录,以便仅需要最后一个命令)

cd {my home directory}
cd myapp        <-- Normally leave a window open here
ant

Ant 工具将在您的 build.xml 文件中执行默认的“编译”目标,该目标将编译任何新的或更新的 Java 代码。如果您在“构建清理”后首次编译,则会导致重新编译所有内容。

要强制重新编译整个应用程序,请执行以下操作

cd {my home directory}
cd myapp
ant all

这是一个非常好的习惯,在签入更改之前立即执行,以确保您没有引入 Javac 的条件检查未捕获的任何细微问题。

测试 Web 应用程序

要测试您的应用程序,您需要在 Tomcat 下安装它。最快的做法是使用示例 build.xml 脚本中包含的自定义 Ant 任务。使用这些命令可能会遵循以下模式

  • 在需要时启动 Tomcat。如果 Tomcat 尚未运行,您将需要以通常的方式启动它。

  • 编译您的应用程序。使用 ant compile 命令(或仅使用 ant,因为这是默认值)。确保没有编译错误。

  • 安装应用程序。使用 ant install 命令。这会告诉 Tomcat 立即开始在 app.path 构建属性中定义的上下文路径上运行您的应用程序。Tomcat 不需要 重新启动才能生效。

  • 测试应用程序。使用您的浏览器或其他测试工具,测试应用程序的功能。

  • 根据需要修改和重新构建。当您发现需要更改时,请在原始文件中进行这些更改,而不是在输出构建目录中,然后重新发布ant compile命令。这可确保您的更改可供稍后保存(通过您选择的源代码控制系统)——输出构建目录将根据需要删除并重新创建。

  • 重新加载应用程序。Tomcat 将自动识别 JSP 页面中的更改,但它将继续使用任何 servlet 或 JavaBean 类的旧版本,直到重新加载应用程序。您可以通过执行ant reload命令来触发此操作。

  • 完成时删除应用程序。当您完成此应用程序的工作后,您可以通过运行ant remove命令从实时执行中将其删除。

完成测试后,不要忘记将您的更改提交到源代码存储库!

创建版本

当您完成添加新功能并且已测试所有内容(您确实测试了,不是吗 :-),现在是时候创建可在生产服务器上部署的 Web 应用程序的可分发版本了。需要以下常规步骤

  • 从项目源目录发出命令ant all,以最后一次从头开始重新构建所有内容。

  • 使用源代码控制系统标记代码的当前状态,以创建用于创建此版本的所有源文件的标识符。这使您能够在以后从(源)可靠地重建版本。

  • 发出命令ant dist以创建可分发 Web 应用程序存档 (WAR) 文件,以及包含相应源代码的 JAR 文件。

  • 根据组织使用的标准发布程序,使用tarzip实用程序打包dist目录的内容。