前言
最近对Tomcat的源码比较感兴趣,于是折腾了一番。要调试源码首先需要搭建环境,由于参考了几篇帖子发现都不怎么靠谱,最后还是折腾出来了,然而却花了足足一天的时间去搭建这个环境。发现都不是帖子的问题,主要是自己在搭建过程中忽略了一些细节,最后构建工程的时候一直失败,我也是醉了。所以本着共享的原则,把一些关键的步骤以及一些需要注意的细节写在博客中以飨读者。
下载Tomcat7源码
下载源码有多种方式,可以通过SVN直接拷贝到本地,svn地址在这里
下载之后源码的目录是这样的:
注意:要把build.properties.default改为build.properties,不然不能成功构建项目
安装ant
下载地址在这里,下载之后新建一个系统变量ANT_HOME,值就是ant的下载目录,比如我的电脑是D:apache-ant-1.8.3
在开始-运行-输入ant -version,如果显示版本信息,那么就说明安装成功
编译工程
在命令窗口输入:
cd ${tomcat.source}
ant ide-eclipse
${tomcat.source}为Tomcat源码的目录,比如我的是D:apache-tomcat-7.0.32-src
要注意的是编译源码的jdk版本要为1.6,低于这个版本将会报错,导致编译不成功。所以如果你的机器的版本高于1.6,只要换成1.6的版本就好了,你可以选择在机器上安装两个版本的jdk(我就是这么做的),把JAVA_HOME的值改为jdk1.6的目录,然后把c:windowssystem32目录下的javaw.exe、java.exe和javaws.exe三个文件删除就可以了。最后输入java -version显示是否切换jdk版本成功。
执行上述命令后,会出现编译成功的提示,最后编译成功的结构是这样的:
其中的.myeclipse是我导入MyEclipse后产生的,其中的uml文件也是后来我新建的,编译后新增加的只有三个文件:.classpath、.project和output文件夹。
导入Eclipse
楼主使用的是Myeclipse,不过过程大体一致,主要是:
File - Import and choose Existing Projects into Workspace
导入之后会出现错误,还要新建两个变量,具体操作是:
打开eclipse的Window - Perferences ,选择Java-Build Path - Classpath Variables,然后,新增以下两个变量:
TOMCAT_LIBS_BASE The same location as the base.path setting in build.properties
ANT_HOME 版本高于1.8,位置就是ant的安装位置
base.path就是build.properties文件中的值,默认就好,当然你也可以选择自己的目录。网上说好像要设置eclipse的complier版本,不过我没有设置并没有报错。
下面是导入Myeclipse之后项目的结构:
调试源码
要调试源码需要打开org.apache.catalina.startup.Bootstrap类,右键选择debug as java application就可以了。要调试具体的源码,只要设置一个断点,然后输入一个URL,不妨使用默认的项目examples省心,然后就可以尽情享受tomcat源码了。
更详细的参考资料,请访问官方文档
http://blog.csdn.net/u011116672/article/details/50994000