我的环境: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. lc 0222

    目录 ✅ 191. 位1的个数 描述 解答 cpp py ✅ 107. 二叉树的层次遍历 II 描述 解答 c todo 观赏 0222 py ✅ 806. 写字符串需要的行数 描述 解答 cpp j ...

  2. mybatis源码探索笔记-4(缓存原理)

    前言 mybatis的缓存大家都知道分为一级和二级缓存,一级缓存系统默认使用,二级缓存默认开启,但具体用的时候需要我们自己手动配置.我们依旧还是先看一个demo.这儿只贴出关键代码 public in ...

  3. 解决centos7命令无法补全

    背景 偶然发现本地虚拟机centos 7.7配置firewalld-cmd命令行无法补全,手敲命令太多,着实麻烦 解决方案 安装linux命令行补全工具,还能够补全命令参数 yum install b ...

  4. 十、Spring中常用注解-分层整理

    1.@Controller: 标注展示层组件(Bean),但是目前该功能与 @Component 相同,用来创建处理http请求的对象   Spring4之后加入的注解,原来在@Controller中 ...

  5. conda常用命令(待续)

    1.常用命名 # 查看虚拟环境列表 conda env list # 创建虚拟环境 conda create -n python36 python=3.6.2 # 切换环境 activate pyth ...

  6. vue 之 axios Vue路由与element-UI

    一. 在组件中使用axios获取数据 1. 安装和配置axios 默认情况下,我们的项目中并没有对axios包的支持,所以我们需要下载安装. 在项目根目录中使用 npm安装包 npm install ...

  7. 乒乓球(0)<P2003_1>

    乒乓球(table.cpp/c/pas) [问题背景]国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制改革引起了很大的争议,有一部分球员因为无法适应 ...

  8. python中模块的制作

    1.import 模块名 2.from 模块名 import 类名(或方法名或全局变量) 3.from 模块名 import *   导入模块名下的所有类名,方法,全局变量 4.from 模块名 im ...

  9. JVM类的加载顺序

    前阵子看到阿里巴巴的一提面试题是关于java类的加载顺序 package com.mikey.demo.Test; class FatherVariable{ static { System.out. ...

  10. python笔记心得

    1.字典的映射 day=10# def get_sunday():# return 'Sunday'# def get_monday():# return 'monday'# def get_tues ...