我的环境:Win10,Eclipse 4.8.0 Photon,JDK 10.0.2
 
1.下载Tomcat源码
我下载的是:apache-tomcat-9.0.12-src.zip
下载好后解压到指定目录,我的目录是:D:\Tomcat\apache-tomcat-9.0.12-src
 
2.下载并安装Ant(因为Tomcat使用Ant构建)
我解压到:D:\Ant\apache-ant-1.10.5
简化教程(在此之前,默认你已安装好Java环境):
  • 配置ANT_HOME,如我的:ANT_HOME = D:\Ant\apache-ant-1.10.5
  • 将 %ANT_HOME%\bin 加入环境变量 Path
  • (可选)打开cmd,在 ANT_HOME 这个目录下执行命令: ant -f fetch.xml -Ddest=system,以获取部分功能所需的相关依赖包
 
3.编译
  • 在你解压的Tomcat目录(我的是:D:\Tomcat\apache-tomcat-9.0.12-src)中找到文件“build.properties.default”
  • 把“build.properties.default”重命名为:“build.properties”
  • 在文件“build.properties”中找到选项:base.path,默认值为:${user.home}/tomcat-build-libs,修改该值(可以把默认的内容注释,另起一行编辑),改为你希望依赖包下载后存放的位置,比如我的改为:D:/Tomcat/tomcat-9.0.12-dependedlibs
  • 打开cmd,在Tomcat解压的目录下,运行命令:ant download,若提示:BUILD FAILED,直接跳过这步(网上其他教程有这个步骤,但我的显示是这样的,继续下一步)
  • 继续在该目录下运行命令:ant,编译要花一些时间,因为可能要下载一些依赖包,如果镜像在国外,下载就会缓慢
  • 注:如果期间卡住了,或者由于偶然的网络原因导致编译失败,重新进行编译,直到成功
 
4.将Tomcat源码导入Eclipse
  • 第3步编译结束后,会在D:\Tomcat\apache-tomcat-9.0.12-src目录下生成一个output目录,用于存放编译结果;
  • 在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后两个代码目录都出现了错误,这是因为缺少依赖包,请看第5步
 
5.导入依赖包
  • ant.jar,在你安装的ANT目录:%ANT_HOME%/lib下,如我的在:D:\Ant\apache-ant-1.10.5\lib
  • jaxrpc.jar,在Eclipse的plugin目录下,如我的在:C:\Users\lichaoxi\.p2\pool\plugins\javax.xml.rpc_1.1.0.v201209140446\lib
  • junit.jar,test包中需要,可以使用Eclipse自带的
  • wsdl4j-1.5.1.jar,去网上下载,我下载的是:wsdl4j-1.6.1.jar
  • org.eclipse.jdt.core_3.3.1.v_780_R33x.jar,版本视情况而定,我下载是:org.eclipse.jdt.core-3.7.1
  • 导入后test包可能还会有部分文件报错,直接删了就好
  • 下载网址:http://www.java2s.com/Code/Jar/CatalogJar.htm
 
6.参考网址

Eclipse 导入 Tomcat 源码的更多相关文章

  1. eclipse导入tomcat源码

    我的开发环境:windows7  64位 一.官网下载tomcat源码.在此奉上一站地址:http://archive.apache.org/dist/tomcat/: 二.编译源码生成.jar文件: ...

  2. Eclipse导入Tomcat源码(转)

    想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到ide中,编写实例进行代码跟踪(debug). 这里参考了网上一些资料,将自己操作过程记个流水账. 准备: 1.Tomcat源码 ...

  3. 探秘Tomcat(一)——Myeclipse中导入Tomcat源码

    前言:有的时候自己不知道自己是井底之蛙,这并没有什么可怕的,因为你只要蜷缩在方寸之间的井里,无数次的生活轨迹无非最终归结还是一个圆形:但是可怕的是有一天你不得不从井里跳出来生活,需要重新审视井以外的生 ...

  4. Eclipse导入Zookeeper源码Version2017.11.3

    将Zookeeper源码导入Eclipse, Zookeeper源码需要使用ant构建后才能导入Eclipse, 和Solr的源码一样也是使用ant构建的, 大部分可以参考Eclipse导入Solr源 ...

  5. Eclipse导入Hadoop源码项目及编写Hadoop程序

    一 Eclipse导入Hadoop源码项目 基本步骤: 1)在Eclipse新建一个java项目[hadoop-1.2.1] 2)将Hadoop压缩包解压目录src下的core,hdfs,mapred ...

  6. eclipse导入Java源码

    eclipse导入Java源码 下载源码包(一般jdk都自带了, 我的没有) src.zip eclipse -> window -> preferences -> JAVA -&g ...

  7. Hadoop1.x目录结构及Eclipse导入Hadoop源码项目

    这是解压hadoop后,hadoop-1.2.1目录 各目录结构及说明: Eclipse导入Hadoop源码项目: 注意:如果没有ant的包可以去网上下,不是hadoop里面的. 然后如果通过以上还报 ...

  8. Eclipse导入Elasticsearch源码

    Eclipse导入Elasticsearch源码的步骤, 基于Elasticsearch 6.2.2的源码版本. 1.安装JDK1.9 Elasticsearch 6.2.2需要JDK1.9编译,否则 ...

  9. eclipse 导入tomcat7源码

    导入tomcat的源码其实说简单也不简单,说不简单也简单,主要还是环境问题,中间花费了我很多时间,网上找了很多都没什么用,参考一些文章,然后自己慢慢摸索出来的. 环境:(1)jdk:jdk1.6.0_ ...

随机推荐

  1. mysql 官方读写分离方案

    mysql 8.0 集群模式下的自动读写分离方案 问题 多主模式下的组复制,看起来挺好,起始问题和限制很多.而且中断一个复制就无法配置了 多主模式下,innodbcluster 等于是无用的,不需要自 ...

  2. 关于Java大整数是否是素数

    题目描述 请编写程序,从键盘输入两个整数m,n,找出等于或大于m的前n个素数. 输入格式: 第一个整数为m,第二个整数为n:中间使用空格隔开.例如: 103 3 输出格式: 从小到大输出找到的等于或大 ...

  3. a标签中执行js函数

    在a标签中调用js函数最适当的方法推荐使用: 1.a href="javascript:void(0);" onclick="js_method()" 这种方法 ...

  4. python知识点总结以及15道题的解析

    先看知识点总结 一.序列操作符x in s 如果x是列表s的元素,返回True,否则Falses + t 连接两个序列s和ts*n或者n*s 将序列s复制n次s[i] 返回s中第i元素s[i:j]或s ...

  5. Python爬虫解析网页的4种方式 值得收藏

    用Python写爬虫工具在现在是一种司空见惯的事情,每个人都希望能够写一段程序去互联网上扒一点资料下来,用于数据分析或者干点别的事情. ​ 我们知道,爬虫的原理无非是把目标网址的内容下载下来存储到内存 ...

  6. idea设置自带的maven为国内镜像

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/panchang199266/articl ...

  7. Spring Cloud 从入门到入门

    参考:https://blog.csdn.net/hellozpc/article/details/83692496 参考:https://www.fangzhipeng.com/spring-clo ...

  8. 【转】CGI 和 FastCGI 协议的运行原理

    介绍 深入CGI协议 CGI的运行原理 CGI协议的缺陷 深入FastCGI协议 FastCGI协议运行原理 为什么是 FastCGI 而非 CGI 协议 CGI 与 FastCGI 架构 再看 Fa ...

  9. c++中的运算符重载operator2(翁恺c++公开课[31-33]学习笔记)

    上一篇operator1中,大概说了下重载的基本用法,接下来对c++中常见的可重载运算符归一下类,说一下它们的返回值,讨论下较为复杂的运算符重载上的坑

  10. NLP的比赛和数据集

    整理了NLP领域的比赛.数据集.模型 比赛 网站 主办方(作者) decaNLP http://decanlp.com/ Salesforce CLUE https://github.com/CLUE ...