编译Tomcat5.5.x

1. 准备工作:
1.1 系统信息:
OS : Windows XP Professional 2002 SP2
CPU: Intel(R) Core(TM)2 Duo T5870 2GHz
RAM: 2G
1.2 构建工具:
JDK: 1.6.0_13(HotSpot)
ANT: 1.7.1
SVN: 1.6.4

2. 下载源码:
cd F:/env/leisore/tomcat/tc5.5.x
co http://svn.apache.org/repos/asf/tomcat/tc5.5.x/trunk F:/env/leisore/tomcat/tc5.5.x/trunk

3. 创建依赖库存放文件夹:
cd F:/env/leisore/tomcat/tc5.5.x/trunk
mkdir lib

5. 准备build.properties:
5.1
进入F:\env\leisore\tomcat\tc5.5.x\trunk\build,将build.properties.default
copy一份,名字修改为build.properties
5.2 修改build.properties中的base.path,指定为lib的绝对路径:
base.path=F:/env/leisore/tomcat/tc5.5.x/trunk/lib

6. 下载依赖库:
6.1
进入F:\env\leisore\tomcat\tc5.5.x\trunk\build
6.2 执行命令:
ant download

7. 构建时出错:
7.1
下载过程中构建DBCP时出错,内容如下:
============================================================================================
[javac] F:\env\leisore\tomcat\tc5.5.x\trunk\lib\tomcat-deps\dbcp\src\java\org\apache\tomcat\
dbcp\dbcp\DelegatingDatabaseMetaData.java:41: org.apache.tomcat.dbcp.dbcp.DelegatingDatabaseMetaData
不是抽象的,并且未覆盖 java.sql.DatabaseMetaData 中的抽象方法 getFunctionColumns(java.lang.String,
java.lang.String,java.lang.String,java.lang.String)
[javac] public class DelegatingDatabaseMetaData extends AbandonedTrace
[javac] ^
[javac] F:\env\leisore\tomcat\tc5.5.x\trunk\lib\tomcat-deps\dbcp\src\java\org\apache\tomcat\
dbcp\dbcp\DelegatingResultSet.java:61: org.apache.tomcat.dbcp.dbcp.DelegatingResultSet 不是抽象的,并且
未覆盖 java.sql.ResultSet 中的抽象方法 updateNClob(java.lang.String,java.io.Reader)
[javac] public class DelegatingResultSet extends AbandonedTrace implements ResultSet {
[javac] ^
[javac] F:\env\leisore\tomcat\tc5.5.x\trunk\lib\tomcat-deps\dbcp\src\java\org\apache\tomcat\dbcp\dbcp\
PoolableCallableStatement.java:38: org.apache.tomcat.dbcp.dbcp.PoolableCallableStatement 不是
抽象的,并且未覆盖 java.sql.CallableStatement 中的抽象方法 setNClob(java.lang.String,java.io.Reader)
[javac] public class PoolableCallableStatement extends DelegatingCallableStatement implements
CallableStatement {
[javac] ^
......
[javac] F:\env\leisore\tomcat\tc5.5.x\trunk\lib\tomcat-deps\dbcp\src\java\org\apache\tomcat\dbcp\dbcp\
datasources\SharedPoolDataSource.java:52: org.apache.tomcat.dbcp.dbcp.datasources.SharedPoolDataSource
不是抽象的,并且未覆盖 java.sql.Wrapper 中的抽象方法 isWrapperFor(java.lang.Class)
[javac] public class SharedPoolDataSource
[javac] ^
[javac] 注意:某些输入文件使用或覆盖了已过时的 API。
[javac] 注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
[javac] 14 错误

BUILD FAILED
F:\env\leisore\tomcat\tc5.5.x\trunk\build\build.xml:2094: The following error occurred while executing this line:
============================================================================================

7.2 Google了一下也没有找到为什么出错,但是在下载的dbcp的README.txt总看到如下信息:
README.txt位置:F:\env\leisore\tomcat\tc5.5.x\trunk\lib\commons-dbcp-1.3-src
信息:
============================================================================================
DBCP 1.4 compiles and runs under JDK 1.6 only (JDBC 4)
DBCP 1.3 compiles and runs under JDK 1.4-1.5 only (JDBC 3)
============================================================================================
于是决定试试DBCP1.4,因为JDK是1.6,修改build.properties中那个的DBCP项:
修改前:
============================================================================================
# ----- Commons DBCP, version 1.1 or later -----
# commons-dbcp.version=1.3
commons-dbcp.version=1.3
============================================================================================
修改后:
============================================================================================
# ----- Commons DBCP, version 1.1 or later -----
# commons-dbcp.version=1.4
commons-dbcp.version=1.4
============================================================================================
继续编译:
ant download
7.3 还是出错,信息为:
============================================================================================
[javac] F:\env\leisore\tomcat\tc5.5.x\trunk\lib\tomcat-deps\dbcp\src\java\org\apache\tomcat\
dbcp\dbcp\PoolingDataSource.java:89: -source 1.4 中不支持泛型
[javac] (请使用 -source 5 或更高版本以启用泛型)
[javac] public boolean isWrapperFor(Class<?> iface) throws SQLException {
[javac] ^
[javac] F:\env\leisore\tomcat\tc5.5.x\trunk\lib\tomcat-deps\dbcp\src\java\org\apache\tomcat\
dbcp\dbcp\datasources\InstanceKeyDataSource.java:171: -source 1.4 中不支持泛型
[javac] (请使用 -source 5 或更高版本以启用泛型)
[javac] public boolean isWrapperFor(Class<?> iface) throws SQLException {
[javac] ^
[javac] 7 错误

BUILD FAILED
============================================================================================
这次的错误就比较明显了,继续修改build.properties:
============================================================================================
compile.source=1.5
compile.target=1.5
============================================================================================
修改前均为1.4,修改完继续编译:
ant download

8. 依赖库下载成功:
经过上边的折腾,ant download成功,可以看到lib下有如下依赖库:
============================================================================================
commons-beanutils-1.7.0
commons-collections-3.2
commons-digester-1.8
commons-el-1.0
commons-logging-1.1.1
commons-modeler-2.0.1
commons-fileupload-1.2
commons-io-1.4
xerces-2_9_1
mx4j-3.0.2
junit3.8.2
commons-launcher
nsis-2.46
struts-1.2.9-bin
commons-daemon-1.0.7
tomcat-native-1.1.22
javamail-1.4.1
jaf-1.1.1
servlet-api-2.4
jsp-api-2.0
commons-pool-1.5.5-src
tomcat-deps
commons-dbcp-1.3-src
commons-dbcp-1.4-src
ecj-3.7
============================================================================================

9. 编译tomcat源码:
9.1
设置ant的jvm属性:
set ANT_OPTS=-Xms1024M -Xmx1024M
9.2 编译tomcat:
进入F:\env\leisore\tomcat\tc5.5.x\trunk\build
执行命令:
ant

10. 编译成功:
============================================================================================
BUILD SUCCESSFUL
Total time: 39 seconds
============================================================================================
可以看见在F:\env\leisore\tomcat\tc5.5.x\trunk\build下游如下目录:
============================================================================================
classes
server
common
bin
conf
docs
lib
tests
logs
shared
work
temp
webapps
============================================================================================

11. 构建release版本:
11.1
修改 build.properties:
============================================================================================
full.dist=on
============================================================================================
11.2 构建release版本:
============================================================================================
cd F:\env\leisore\tomcat\tc5.5.x\trunk\build
ant release
============================================================================================
11.2 构建成功:
在F:\env\leisore\tomcat\tc5.5.x\trunk\build有如下目录:
============================================================================================
release
└─v5.5.34
│ KEYS
│ RELEASE-NOTES
│ README.html

├─bin
│ apache-tomcat-5.5.34.exe
│ apache-tomcat-5.5.34.exe.md5
│ apache-tomcat-5.5.34.zip
│ apache-tomcat-5.5.34.zip.md5
│ apache-tomcat-5.5.34.tar.gz
│ apache-tomcat-5.5.34.tar.gz.md5
│ apache-tomcat-5.5.34-embed.zip
│ apache-tomcat-5.5.34-embed.zip.md5
│ apache-tomcat-5.5.34-embed.tar.gz
│ apache-tomcat-5.5.34-embed.tar.gz.md5
│ apache-tomcat-5.5.34-deployer.zip
│ apache-tomcat-5.5.34-deployer.zip.md5
│ apache-tomcat-5.5.34-deployer.tar.gz
│ apache-tomcat-5.5.34-deployer.tar.gz.md5
│ apache-tomcat-5.5.34-compat.zip
│ apache-tomcat-5.5.34-compat.zip.md5
│ apache-tomcat-5.5.34-compat.tar.gz
│ apache-tomcat-5.5.34-compat.tar.gz.md5
│ apache-tomcat-5.5.34-admin.zip
│ apache-tomcat-5.5.34-admin.zip.md5
│ apache-tomcat-5.5.34-admin.tar.gz
│ apache-tomcat-5.5.34-admin.tar.gz.md5
│ apache-tomcat-5.5.34-fulldocs.tar.gz
│ apache-tomcat-5.5.34-fulldocs.tar.gz.md5
│ README.html

└─src
apache-tomcat-5.5.34-src.zip
apache-tomcat-5.5.34-src.zip.md5
apache-tomcat-5.5.34-src.tar.gz
apache-tomcat-5.5.34-src.tar.gz.md5

12. 测试:
12.1
进入F:\env\leisore\tomcat\tc5.5.x\trunk\build,执行:
ant clean-tester run-tester
12.2 测试成功

13. 至此,tomcat构建完毕。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值