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

环境:(1)jdk:jdk1.6.0_45  我下的是这个版本,只要是jdk1.6的就可以(1.7是编译不了的,反正我是不行,最后配置了多个1.6)jdk6下载地址

(2)ant:apache-ant-1.9.6 应该1.7以上的都可以  http://ant.apache.org/bindownload.cgi

(3)tomcat:apache-tomcat-7.0.65-src  这个可以在http://tomcat.apache.org/download-70.cgi  选择下载,拉到最下面有个Source Code Distributions

两个都是可以下载解压的。

(1)jdk的环境变量配置我就不多说了。如果有两个版本的jdk,可以重新配置,可以有系统环境变量path的顺序是重左到右的,找到了就不会再往下找。如果遇到java -version版本不对可以根据这个原理查找原因。

(2)ant环境配置,和jdk一样,这里也不多说。

(3)tomcat源码解压后,将apache-tomcat-7.0.65-src拷贝到你想要存放目录,E:\tomcatsource\apache-tomcat-7.0.65-src

    修改该目录下的build.properties.default文件的名字为build.properties,在build.properties文件配置base.path,这个是ant之后下载tomcat源码依赖包的存放位置。E:\tomcatsource\apache-tomcat-7.0.65-src\tomcatbasepath

注意:不是“\”,而是“/”,配置文件中是E:/tomcatsource/apache-tomcat-7.0.65-src/tomcatbasepath


都已经准备好了,可以开始ant 了。cmd进入E:\tomcatsource\apache-tomcat-7.0.65-src即tomcat源码的根目录,执行ant ide-eclipse

出现了这个错误,等了下再执行ant ide-eclipse,结果build 成功了。

原因我也不知道。总之现在好了,而且生成了.classpath和.project文件,就是通过这两个文件导入eclipse的。现在就将tomcat的源码导入eclipse中了。

如何导入eclipse我也不多说了,就和导入java工程一样。

导入后的展示效果是这样的。

导入之后工程可能会有红色感叹号或者是红色叉叉,因为tomcat还需要导入其他依赖包,jdk,junit的包,还有一些别的。

最后编辑后的结果是这样的ANT_HOME表示安装ant的根目录。TOMCAT_LIBS_BASE就是前面base.path目录。

上面这个是我已经编辑好了的。

填入name和路径,这里的path不是jar包的路径,依赖包的根目录,所以选择folder。

都编辑好后tomcat的目录是这样的,红叉没了。

直接运行org.apache.catalina.startup.Bootstrap 的main是不行的。会出现如下的警告信息

信息提示:在E:\tomcatsource\apache-tomcat-7.0.65-src\output\build\conf没有找到server.xml文件,因为他把E:\tomcatsource\apache-tomcat-7.0.65-src\output\build作为了tomcat的根目录。

我们右键Run as-->Run Configurations

在Arguments设置VM arguments 这里设置了Catalina.home的路径包含了/output/build,因为在该目录下的目录是空的,我们把他去掉。这时再运行,访问http://localhost:88080出现tomcat的首页,说明成功了。

tomcat的根目录下有个BUILDING.txt 绝对是个好东西。看了你就明白很多了。

最新文章

  1. 正则去掉img标签的style样式
  2. Ubuntu使用ssh公钥实现免密码登录
  3. 解除svn版本控制
  4. sizzle源码分析 (3)sizzle 不能快速匹配时 选择器流程
  5. HDU 4757 Tree
  6. swift 枚举类型
  7. linux 7 常见命令
  8. 上传XML文件字符编码问题
  9. 35个jQuery小技巧(转)
  10. SQL Server 分离与附加数据库
  11. PHP实现栈(Stack)数据结构
  12. Area 使用
  13. Java基础篇Socket网络编程中的应用实例
  14. Ansible5:常用模块【转】
  15. DBA_TABLES ALL_TABLES USER_TABLES
  16. Nginx处理请求过程
  17. html页面使用前端框架布局时,弹出子页面等情况若出现布局混乱,可能是回发导致
  18. react学习笔记(一)
  19. LOJ-10099(点双联通)
  20. DD_belatedPNG解决IE6下PNG不透明问题

热门文章

  1. C# 根据时间创建文件夹
  2. tomcat创建一个windows服务
  3. Java反射——引言
  4. No CurrentSessionContext configured 异常解决
  5. 强烈推荐:240多个jQuery插件【转】
  6. stl——vector详解
  7. Javascript:由 “鸭子类型” 得出来的推论
  8. VIM批量文件查找和替换
  9. MacOSX64位机器上gcc编译32位x264静态库
  10. 内核操作系统Linux内核变迁杂谈——感知市场的力量