Tomcat源码编译、调试

一、下载Tomcat源码
① 打开Apache-Tomcat官网(http://tomcat.apache.org/)
② 在左侧“Download”中选择要下载的版本(本次8.5.24)
至于为什么要选8.5?因为研究了JDK8的部分源码后,想再深入学习下web容器的知识;9.0版本还在研发,而在8.0.x版本中,并没有完全用到JDK8的特性。详见(http://tomcat.apache.org/whichversion.html)
③ 选择“Source Code Distributions”版本下载

二、编译
其实这部分是傻瓜式操作,参照文档即可(http://tomcat.apache.org/tomcat-8.5-doc/building.html)
① 将 $(tomcat.source)/build.properties.default文件的“.default”后缀去掉,然后用文本编辑器打开,修改“base.path”路径(这个是tomcat依赖的各种jar包,默认是linux格式,windows平台一定要修改)
② 安装ant(version >= 1.95)
在官网下载ant(http://ant.apache.org/) ,然后打开ant手册目录:$(ant)/manual/index.html,按照左侧“Installing Apache Ant”配置即可
③ 编译;1.使用ant编译,通过命令号进入tomcat目录后,输入ant命令即可;

注:编译成功后,在tomcat目录下会生成output目录,此时output/bin下已经生成了各种命令,可以通过命令运行tomcat了(注意:命令在$(tomcat)/output/build/bin);

三、源码调试
当然了,既然我们选择的是 tomcat-src工程,如果只是直接通过命令行运行,那又有什么意义呢?当然是要在ide中源码调试啦。
① 在$(tomcat)下,运行 ant ide-eclipse(运行了此行命令后,才会在$(tomcat)生成对应ide的工程文件【eclipse 的 .project 和 .classpath】)
如果出现一下问题,不要急:
/Users/kevin/Documents/Development/apache-tomcat-8.5.16/build.xml:2791: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
看到ssl,就知道这个事https找不到证书出错,简单处理方式:手动下载文件到前文配置的 "base.path" 目录下即可,目录截图如下:


Tomcat源码编译、调试_第1张图片
15.png

② 再次进行编译,完成
③ 在Eclipse中导入tomcat-src(其他IDE类似)
还有错误?



在以 ide-support 的方式运行tomcat,需要依赖 ant 和 之前配置 base.path 下的jar包
④ 配置环境变量 ANT_HOME,TOMCAT_LIBS_BASE


Tomcat源码编译、调试_第3张图片
11.png

Tomcat源码编译、调试_第4张图片
12.png

⑤ 启动Tomcat
res/ide-support/eclipse/start-tomcat.launch,启动成功,访问http://localhost:8080,即可看到熟悉的画面

你可能感兴趣的:(Tomcat源码编译、调试)