在eclipse中导入并编译Tomcat源代码

转载请注明出处:https://blog.csdn.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

  1. 在tomcat解压目录下的同级目录新建一个依赖包文件夹,命名

为:apache-tomcat-9.0.20-dependedlibs

  1. 修改目录(tomcat解压目录)下的“build.properties.default”重命名为“build.properties”
  2. 在“build.properties”查找base.path,修改为如下图:

  1. 打开cmd,在tomcat解压目录下,运行命令:ant download,若提示:BUILD FAILED,直接跳过这步,(不会有什么影响,不用担心)
  2. 继续在该目录下运行命令:ant

 

检验ant安装成功

 

 

3tomcat源码导入eclipse

  1. 在Eclipse中新建Java Project,我命名为:Tomcat9,把Tomcat解压目录下的java、test两个源码目录导入(导入模式为:File System)到Tomcat9中。
  2. 注意:分批导入;导入前,在Options选择框中注意勾选“Create top-level folder”,否则不会生成层级目录结构
  3. 把java和test两个目录标记为source folder,右键选择文件夹->Build Path->Use as Source Folder,标记为source folder后两个代码目录都出现了错误,这是因为缺少依赖包。

 

4导入依赖包

  1. ant.jar,在你安装的ANT目录:%ANT_HOME%/lib下。
  2. jaxrpc.jar在Eclipse的plugin目录下,可以通过搜索查找位置。
  3. junit.jar,test包中需要,可以使用Eclipse自带的。
  4. org.eclipse.jdt.core_3.10.2.v20150120-1634.jar,这个也在在Eclipse的plugin目录下。
  5. 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章