Tomcat8.0.x源码解析(一)--搭建源码阅读环境

1、 到apache tomcat官网下载tomcat源码包http://tomcat.apache.org/,目前已经有了tomcat9,我下载的是apache-tomcat-8.0.33-src.zip,然后解压

2、 安装jdk1.7或更新版本
Tomcat-8.0.33源码目录下building.txt文件是对构建tomcat的说明,第一点要求就是安装jdk1.7+,我这里安装的是jdk8

3、 安装ant1.9.5或更新版本
Tomcat源码工程采用ant来进行项目的构建
building.txt第二个要求是安装ant1.9.5+,我这里安装的是ant1.9.6

4、 cmd下使用ant编译tomcat
ant

执行这个命令根据build.xml的配置将会tomcat源码编译,编译过程需要下载依赖包,在我的机器上,依赖包存储的路径为: C:\Users\jison\tomcat-build-libs

5、 cmd下将tomcat源码工程转换成eclipse工程
ant ide-eclipse

执行这个命令时出现了异常,如下图所示:

[img]http://dl2.iteye.com/upload/attachment/0116/4732/d667eef5-0812-3e23-a7ca-404a8edf0c79.jpg[/img]

访问googlecode.com下载文件失败。
这时候一种办法是自备梯子翻()墙,继续执行ant ide-eclipse命令完成源码工程的转换。
另一种方法则不需要。将命令行里的信息拉上去可以看到尽管访问googlecode.com下载文件失败,但是tomcat所依赖的几个jar均已经下载到了C:\Users\jison\tomcat-build-libs目录下。
我们再看一下ant ide-eclipse调用的target将会调用build.xml对应的ide-eclipse的target,相关的xml配置文件片段如下:
  <target name="ide-eclipse"
depends="download-compile, extras-webservices-prepare, download-test-compile"
description="Prepares the source tree to be built in Eclipse">

<!-- Copy the sample project files into the root directory -->
<copy file="${tomcat.home}/res/ide-support/eclipse/eclipse.project" tofile="${tomcat.home}/.project"/>
<copy file="${tomcat.home}/res/ide-support/eclipse/eclipse.classpath" tofile="${tomcat.home}/.classpath"/>

<!-- Copy compiler settings file -->
<mkdir dir="${tomcat.home}/.settings" />
<copy file="${tomcat.home}/res/ide-support/eclipse/org.eclipse.jdt.core.prefs.properties" tofile="${tomcat.home}/.settings/org.eclipse.jdt.core.prefs"/>

<echo>Eclipse project files created.
Read the Building page on the Apache Tomcat documentation site for details on how to configure your Eclipse workspace.</echo>
</target>

可以看到这个命令调用的target仅仅是做了三件事(即处理eclipse项目所需要的几个配置文件):
1) 将tomcat源码目录下的/res/ide-support/eclipse/eclipse.project文件复制到tomcat源码根目录并重命名为.project文件
2) 将tomcat源码目录下的/res/ide-support/eclipse/eclipse.classpath文件复制到tomcat源码根目录并重命名为.classpath文件
3) 在tomcat源码根目录创建.settings文件夹。并将/res/ide-support/eclipse/org.eclipse.jdt.core.prefs.properties复制到.settings文件夹下
当然,这个ide-eclipse的target所以依赖的download-compile的下载依赖jar的target都没有执行完,所有以上说的三件事也就没有处理了。
我们现在要做的就是手动将上面三个操作执行完即可。
需要注意的是,”.”开头的文件夹和文件windows下是无法正常创建的,这里我使用了git-bash使用linux命令解决的。

6、 将tomcat源码导入eclipse
将tomcat源码转换成eclipse工程后,就可以使用Eclipse—》File—》Import—》Existing Projects into Workspace的方式导入项目了。

7、 处理tomcat依赖报错问题
导入eclipse后,会出现依赖包找不到的错误。缺少的依赖包如下:

[img]http://dl2.iteye.com/upload/attachment/0116/4738/c7c12be4-585c-36df-afbd-524a5c6ca9ae.jpg[/img]

将这五个依赖的路径remove,然后将这五个jar从别的地方找过来。
这五个jar包其中四个在ant命令下载路径C:\Users\jison\tomcat-build-libs里面有

[img]http://dl2.iteye.com/upload/attachment/0116/4742/eaaaf6a7-5f56-37a0-8f95-c44bbdbe9880.jpg[/img]

还有一个ant.jar可以在我们ant安装目录下的lib目录下找到。
找到这五个jar包之后,在导入eclipse的tomcat源码工程下建一个lib目录,并将这五个jar复制到lib目录下,然后将其add to buildpath。
这时项目的报错就解决了

[img]http://dl2.iteye.com/upload/attachment/0116/4740/bde0deec-2378-3eaa-ab7c-5daec276244b.jpg[/img]

8、 运行tomcat源码工程
Tomcat的main启动方法在org.apache.catalina.startup. Bootstrap类下,启动时选择这个类的startup-tomcat选项即可,若是选择stop-tomcat则是关闭tomcat。这一点与平时使用时tomcat的startup.bat和shutdown.bats是一样的。

[img]http://dl2.iteye.com/upload/attachment/0116/4734/989ce957-81ce-313b-b6ef-d3c40c2246aa.jpg[/img]

9、 浏览器访问http://localhost:8080
浏览器访问的结果如下,跟平时我们使用的tomcat效果是一样的:

[img]http://dl2.iteye.com/upload/attachment/0116/4744/404534ca-38ea-3412-9132-18f8f268381f.jpg[/img]

10、下面提供可以直接导入eclipse的tomcat-8.0.x源码工程
链接:http://pan.baidu.com/s/1pL27GKz 密码:26bz
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值