a6266318 发表于 2017-1-16 10:50:29

Building Tomcat 6

1.安装TortoiseSVN
http://tortoisesvn.net/

2.利用TortoiseSVN下载Tomcat6源码



exoprt http://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/TOMCAT_6_0_26
(我选择的版本是TOMCAT_6_0_26)




3.编译Tomcat6源码
Tomcat是用ant构建的,首先要安装ant,这里不介绍ant的安装了
从Tomcat的源代码文件找到build.properties.default文件,把名字改为build.properties,打开这个文件找到下面这行:
base.path=/usr/share/java
这个路径是用来存放即将下载的文件的目录,由于我用的是Windows,所以改为适合我的目录:
base.path=D:/Workspace/JEE/workspace/TOMCAT_6_0_26/share

接着在D:\Workspace\JEE\workspace\TOMCAT_6_0_26\src 目录下打开命令行窗口,执行下面命令:

ant download



TOMCAT_6_0_26这个版本目前下载正常,较老版本一些下载链接可能会失效,需要在 build.properties文件中改链接。
都下载了如下文件:



下载完后直接执行 ant 命令就开始编译了



编译完成后会产生一个output目录,到这个目录(D:\Workspace\JEE\workspace\TOMCAT_6_0_26\src\output\build)下看看,怎么样?我们见到了熟悉的Tomcat目录结构,如下图:




4.将Tomcat源码导入Eclipse
打开Eclipse,新建一个Java项目,然后点击“Next”按钮,在“Use default location”中填入D:\Workspace\JEE\workspace\TOMCAT_6_0_26\src
Project name: TOMCAT_6_0_26
然后一路next



接着我们会看到Eclipse拒绝编译该项目,不要着急,这是由于Eclipse找不到该项目指定的库文件。右击该项目弹出菜单选择 "Build Path" -> "Configure Build Path..." -> "Libraries"
Remove下面两项:
ANT_HOME/lib/ant.jar
TOMCAT_LIBS_BASE/...



接着添加如下依赖(Add External JARs...):
(也可以参考:http://tomcat.apache.org/tomcat-6.0-doc/building.html#Building_with_Eclipse)
ant.jar (在你电脑ant安装目录下lib目录下可以找到)
org.eclipse.jdt.core_3.3.1.v_780_R33x.jar (刚才下载的目录D:\Workspace\JEE\workspace\TOMCAT_6_0_26\share\eclipse\plugins 可以找到)
junit4.7 (这个原来有,我给换成4.7的了)

5.在Eclipse中运行Tomcat
找到org.apache.catalina.startup.Bootstrap
右键 Run as -> Run Configurations...
在Program参数窗口和VM参数窗口分别填入
start

-Dcatalina.home="D:\Workspace\JEE\workspace\TOMCAT_6_0_26\src\output\build"



Debug同理,不解释,看图:



从org.apache.jasper.compiler.Compiler类的generateJava()方法开始Debug更好,debug启动Tomcat,然后浏览器输入地址并回车,就会看到如下Debug视图:



注意:generateJava方法是将jsp编译成java class,这个行为只有第一次请求时才会调用,将你再次发送请求时你将看不到这个Debug视图了,解决办法是到Tomcat的 build\work\Catalina\目录删除对应jsp的类文件

接下来,带个好心情,读源码吧,祝快乐
页: [1]
查看完整版本: Building Tomcat 6