1. 安装JDK
- 不能安装JDK 1.6.x,否则Tomcat 5.5.26依赖的commons-dbcp-1.2.2-src无法编译,原因是:
- JavaSE 6.0升级了java.sql包中的某些接口,为它们增加了一些方法。
- commons-dbcp-1.2.2-src中包含了上述接口 的实现类,这些类当然没有实现新加的方法。
- 最好也不要安装JDK 1.3.x和1.4.x,原因是:
- Tomcat 5.5.x的目标运行平台是J2SE 5.0。
- 如果需要运行在1.3和1.4平台上,则需要构建兼容包(下文会有详细介绍)。
- 因 此,直接安装JDK 1.5.x,是最省事的。
- 不要忘记设置环境变量JAVA_HOME哦。否则,Ant将无法运行。
2. 安装Ant
- Ant的最新版本是1.8.x,其实1.5.x就已经符合本文的需求。
- 从http://ant.apache.org/bindownload.cgi 下 载Ant 1.8.x的二进制发行版。
- 解压缩二进制发行版到任一目录(按惯例可以命名为apache-ant-[version])。 为了方便描述,下文中使用${ant.home}表示该目录。
- 创建环境变量ANT_HOME=${ant.home}。
- 修 改环境变量PATH,使其包括${ant.home}/bin。这样,我们就可以控制台中直接运行"ant"命令。
3. 安装Subversion
- Apache基金会现在使用Subversion管理源代码,因此我们需要使用Subversion从 apache.org检出Tomcat的源代码。
- Subversion的最新版本是1.6.x,其实1.3.x就已经符合本文的需求
- 从http://subversion.apache.org/packages.html 下 载Subversion 1.6.x的二进制发行版。
- 解压缩(Linux/Unix平台)或安装(Windows平台)二进制发行版。 为了方便描述,下文中使用${svn.home}表示Subversion的安装目录。
- 修改环境变量PATH,使其包 括${svn.home}。这样,我们就可以控制台中直接运行"svn"命令。
- 如果你通过代理服务器连接网络,那么SVN检出 Tomcat源代码时可能会失败。解决方案可以参考http://subversion.apache.org/faq.html#proxy 。
4. 构建Tomcat 5.5.26
- 准备构建脚本
- 从http://tomcat.apache.org/tomcat-5.5-doc/build.xml 下 载build.xml文件
- 创建一个目录,将build.xml拷贝进去。为了方便描述,下文中使用${tomcat.source}表 示该目录。
- 检出源代码
- cd ${tomcat.source}
- 修改 build.xml
- 将<property name="current.loc" value="tomcat/current/tc5.5.x" />修改成<property name="current.loc" value="tomcat/tc5.5.x/tags/TOMCAT_5_5_26" />
- 修改的原因包括:
- tomcat/current /tc5.5.x这个路径已经不存在
- 我们要下载的源代码似乎5.5.26版,而不是5.5.x的最新版
- ant checkout
- 如果你通过代理服务器连接网络,就必须在属性文件中配置代理信息。
- 属性文件 是${tomcat.source}/build/build.properties.default,代理信息包括:
- proxy.host=[proxy.host]
- proxy.port=[proxy.port]
- proxy.use=on
- 构 建
- 修改${tomcat.source}/build/build.properties.default
- 将 属性base.path的值修改成成你方便管理的目录(绝对路径)。
- 该目录用于存储构建Tomcat依赖的第三方库的源代码 (及构建后的jar包)。
- 如果不修改,在windows平台上,第三方库将被下载到[当前分区]/user/share/java目录 下。
- 将属性tomcat-native.home的值修改成${base.path}/tomcat- native-1.1.20
- 修改的原因是:默认的1.1.12版已经不存在了。
- 修改的原因是:默认的1.1.12版已经不存在了。
- 将属性 tomcat-native.loc的值修改成${base-tomcat.loc}/tomcat-connectors/native/source /1.1.20/tomcat-native-1.1.20-src.tar.gz
- 修改的原因是原来的路径现在不存在了,而且 1.1.12版的native源代码也不存在了。
- 将 属性base.path的值修改成成你方便管理的目录(绝对路径)。
- cd {$tomcat.source}
- ant build
- 有个问题需要注意,由于Eclipse站点的原因,下载eclipse-JDT-3.3.1.zip这个包(体积 20+M)的速度非常非常慢。
- 解决方法是,在执行ant build之前,从http://archive.eclipse.org/eclipse/downloads/drops/R- 3.3.1-200709211145/eclipse-JDT-3.3.1.zip手动下载,放到${base.path}目录下,并解压缩。
- 修改${tomcat.source}/build/build.properties.default
5. 更新源代码
- 如果你想一直使用最新版的Tomcat,则可以定期更新源代码。
- 更新源代码的方法:
- cd ${tomcat.source}
- 修改build.xml
- 将<property name="current.loc" value="tomcat/tc5.5.x/tags/TOMCAT_5_5_26" />中value的值,修改成你想获取的Tomct版本的路径
- 修改成tomcat/tc5.5.x/trunk,则可以获取 5.5.x的最新代码
- 修改成tomcat/tc6.0.x/trunk,则可以获取6.0.x的最新代码
- ant checkout
6. 重新构建
- 如果你修改了部分源代码,可以按照下面方案快速重新构 建:
- cd ${tomcat.source}/build
- ant build
- 另 外,执行ant build-depends,重新构建Tomcat依赖的第三方库。
7. 构建兼容包
- Tomcat 5.5.x的目标运行平台是J2SE 5.0。
- 如果需要运行在1.3和1.4平台上,则需要构建兼容包:
- cd ${tomcat.source}/build
- ant compat
8. 构建Servlet和JSP的Java API文档
- cd ${tomcat.source}/build
- ant dist-javadoc
9. 构建发行版,并运行测试用例
- cd ${tomcat.source}/build
- ant release