在eclipse中导入并编译Tomcat源代码
转载请注明出处:https://blog.****.net/IT_moshang/article/details/90973158
1.安装并配置ant的运行环境
下载地址:https://ant.apache.org/bindownload.cgi
我下载的版本是1.10.6
配置ant运行环境步骤:(默认jdk已经配置好,不懂可以去网上查找相关资料,这里就不细讲了。)
配置classpath
配置path
添加ant_home
2.下载tomcat源码
下载地址:https://tomcat.apache.org/download-90.cgi
我下载的版本是9.0.20(红框中的两种都可以,我下载的是第一个)
解压:
我解压的位置是:D:\tomcatSourceCode\apache-tomcat-9.0.20-src
- 在tomcat解压目录下的同级目录新建一个依赖包文件夹,命名
为:apache-tomcat-9.0.20-dependedlibs
- 修改目录(tomcat解压目录)下的“build.properties.default”重命名为“build.properties”
- 在“build.properties”查找base.path,修改为如下图:
- 打开cmd,在tomcat解压目录下,运行命令:ant download,若提示:BUILD FAILED,直接跳过这步,(不会有什么影响,不用担心)
- 继续在该目录下运行命令:ant
检验ant安装成功
3将tomcat源码导入eclipse
- 在Eclipse中新建Java Project,我命名为:Tomcat9,把Tomcat解压目录下的java、test两个源码目录导入(导入模式为:File System)到Tomcat9中。
- 注意:分批导入;导入前,在Options选择框中注意勾选“Create top-level folder”,否则不会生成层级目录结构
- 把java和test两个目录标记为source folder,右键选择文件夹->Build Path->Use as Source Folder,标记为source folder后两个代码目录都出现了错误,这是因为缺少依赖包。
4导入依赖包
- ant.jar,在你安装的ANT目录:%ANT_HOME%/lib下。
- jaxrpc.jar在Eclipse的plugin目录下,可以通过搜索查找位置。
- junit.jar,test包中需要,可以使用Eclipse自带的。
- org.eclipse.jdt.core_3.10.2.v20150120-1634.jar,这个也在在Eclipse的plugin目录下。
- wsdl4j-1.5.1.jar,去网上下载,我下载的是:wsdl4j-1.6.1.jar(下载地址:http://www.java2s.com/Code/Jar/CatalogJar.htm)。
导入成功后,java将不在出现错误,但test还是会有错误,网上有些地方说删掉,但我发现越删错误的包越多,所以就就建议不要删,反正对编译也没有影响。
编译java下的Bootrap,具体路径如下:
你会发现编译还没有成功。这是因为当前项目路径下没有lib和conf这两个文件夹,从而找不到服务器配置文件server.xml,当然也就不能实例化服务器了。
解决方法:
a、把前面编译生成的output目录下的/build/下的lib和conf两个目录拷贝到tomcat下,这时就可以直接启动了。
b、第二种方法就是添加VM参数,指定这两个文件夹的具体路径,用VM的-D参数指定catalina.home属性值为具体的路径,具体方法如下:
Run as -> Run Configuration... - > Arguments -> 设置VM arguments ->然后Run就可以启动了
设置VM arguments中的路径是tomcat解压目录下的output中的build(要结合自身存放位置做相应的修改)
修改好之后重新跑一遍Bootrap
如若想下图这样则说明tomcat开启成功
接着在浏览其中输入:http://localhost:8080
出现如图则说明成功,大家可以放开手脚读源码了。
附上一个小插曲:
一开始我的服务器开启成功,不过在浏览器访问时出现了错误,
后来我对这段代码进行了注释,就可以访问了。
参考网址:
https://www.cnblogs.com/dlutfengyu/p/5346080.html
https://www.cnblogs.com/southday/p/9821332.html