最近想写几篇关于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 , 在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. 在命令行下 键入 cd c:\tomcat6 切换到 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步配置后就可以用了
http://download.csdn.net/source/2301411 这是第一部分
http://download.csdn.net/source/2301430 第二部分
http://download.csdn.net/source/2301442 第三部分
http://download.csdn.net/source/2301452 第四部分