最近想写几篇关于jsp底层原理的文章,感觉还是从源码入手比较好。想了想还是从tomcat源码开始吧。从网上找了几篇关于ant的文章看了看,感觉还行,因为编译tomcat必须要了解ant方面的知识的。不说废话了,现在开始。

 

1.       在myeclipse6中

用SVn从http://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/TOMCAT_6_0_0/   checkout 出tomcat6源码  检出的项目名称为tomcat6 ,我的工作空间位置是D:/myEclipse6Tomcat6_20100429

 

 

 

 

 

 

 

 

 

 

 

 

 

上图是检出源码后的目录,现在并没有lib,share 和output这几个个目录,这个目录是编译后才生成的。

 

1.       安装ant ,这个就不说了网上有的是资料

2.       把tomcat6 这个目录拷贝到一个尽量简单的目录 我的是c:/tomcat6

3.       复制一份tomcat6 下build.properties.default 文件并重名为build.properties

4.       打开build.properties 修改base.path=  , 在c:/tomcat6 下建一个目录share 这个目录是tomcat 在编译是用来保存其依赖的 库文件。

5.  由于在build.properties 中  jdt.loc=http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip 中这个链接已经失效 ,所以为了预防编译是出错 最好先下载 eclipse-JDT-3.2.zip 这个文件 ,当时找这个文件可费了一番功夫 。在我写这篇文章是的有效链接地址为 http://archive.eclipse.org/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip

 

这个文件将近20M 。

 

6.下载这个文件后, 我为了方便 在机器上起了个tomcat服务 并把这个文件放到了tomcat  下 webapps/ROOT 主目录中 ,那么 可以在build.properties 中修改

  jdt.loc= http://localhost:8080/ eclipse-JDT-3.2.zip 这是为了防止 在编译时再从网上下载 我想出的笨办法,如果你的网速快的话可以修改为jdt.loc=http://archive.eclipse.org/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip

这样也行。

7.  下一步就是编译你的机器上最好装有jdk1.5 ,最好设有JAVA_HOME 这个path,这是为了防止不必要的错误。

8.  在命令行下  键入  切换到 tomcat6 目录中 后运行 ant download

Ant会自动把tomcat6所依赖的包下载到 c:/tomcat6/share 目录中并自动解压

如果提示成功的话,在此可能有好多警告,不必理会。

9.  如果上诉过程成功的话那么恭喜你了,至少我当时是在上个步骤被折磨的不轻

下边继续在命令行中键入 ant ,开始编译。

11.编译成功后把这个目录拷贝到D:/myEclipse6Tomcat6_20100429

刚开始建的工作空间中并覆盖从svn上down下的代码

12.在tomcat6 中新建一个文件夹lib用来保存以下文件

ant.jar (请在ant安装目录的lib子目录中拷贝)

 

commons-collections-3.1.jar (从刚才Ant下载的commons-collections-3.1子目录中拷贝) 
 
commons-dbcp-1.2.1.jar(从刚才Ant下载的commons-dbcp-1.2.1子目录中拷贝) 
 
commons-logging-1.1.jar(如果您本机没有这个jar包,请从http://commons.apache.org/downloads/download_logging.cgi处下载) 
 
commons-pool-1.2.jar(从刚才Ant下载的commons-pool-1.2子目录中拷贝) 
 
org.eclipse.jdt.core_3.2.0.v_671.jar(从刚才Ant下载的eclipse/plugins子目录中拷贝)

 

把以上文件拷贝到lib文件夹中,并把这些jar文件加入到tomcat6 项目的classpath中

13. 在myeclipse中选择window-》Preference-》MyEclipse-》server-》tomcat-》

Tomcat6.x-》

 

 

 

 

这个过程应该很简单 就是平时配置tomcat的过程

完成以上过程 会在 servers视图中出现 tomcat6.x

 

 

 

然后在org.apache.catalina.startup. Bootstrap的main方法中设几个断点,以debug模式启动tomcat6 就可以调试tomcat了。

 

 

错误处理:

Ant错误 1

downloadzip: 
 
[get] Getting: http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip 
[get] To: D:/carl_wu/tomcat/share/file.zip 
[get] Error opening connection java.io.FileNotFoundException: http://sunsite.informatik.rwth-aachen.de:3080/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip 
 
[get] Error opening connection java.io.FileNotFoundException: http://sunsite.informatik.rwth-aachen.de:3080/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip 
 
[get] Error opening connection java.io.FileNotFoundException: http://sunsite.informatik.rwth-aachen.de:3080/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip 
 
[get] Can't get http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip to D:/carl_wu/tomcat/share/file.zip 
 
BUILD FAILED 
 
D:/carl_wu/tomcat/src/build.xml:554: The following error occurred while executing this line: 
 
D:/carl_wu/tomcat/src/build.xml:514: Can't get http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip to D:/carl_wu/tomcat/share/file.zip

 

出现这个错误请参照第6和第7步

 

还有其他错误可能是因为你ant安装错误,或jdk安装错误,建议jdk使用1.5

并在环境变量中加入 JAVA_HOME这个变量,这样出错机会可能小点。

 

 

以下是我上传的编译后项目的地址,我的文件上传权限只有15m,所以分成了4个文件,下载后解压导入到myeclipse中 按照第13步配置后就可以用了

 

 这是第一部分

 

 第二部分

 

 第三部分

 

      第四部分

 

 

顺便说几句csdn 中在文章中贴几张图片 太麻烦了!