编译tomcat
1.下载源代码 tomcat.apache.org
我下载的是apache-tomcat-6.0.32-src.zip
解压apache-tomcat-6.0.32-src.zip到E:/hanjy/tomcat/src/apache-tomcat-6.0.32-src。目录结构如下图(注意:没有output目录,它是编译后生成的)
2.用ant编译
把E:/hanjy/tomcat/src/apache-tomcat-6.0.32-src/build-properties.xml.default拷贝一份,命名为build-properties.xml.
修改build-properties.xml.
base.path=E:/hanjy/tomcat/share 注意是"/"而不是"/"
在源代码目录执行ant download
通过查看build-properties.xml文件可以了解到,该文件可能是定义了一些编译tomcat6所依赖的jar包,还包括其他东西。ant download命令会下载这些文件,并把他们放在base.path定义的位置。
其中有些jar包也是后面用eclipse编译tomcat6所需要的。
值得一提的是,build-properties.xml中的一些链接可能失效了,因此,如果找不到正确的链接,需要手动下载。
在源代码目录执行ant,编译成功后,会有提示。
编译成功的tomcat6会放在output目录下,在该目录的build/bin目录下,你会看到startup.bat/startup.sh, 执行该脚本,即可启动tomcat6
3.用eclipse编译
我的eclipse版本是:
Eclipse IDE for Java Developers
Version: Helios Service Release 1
Build id: 20100917-0705
把源代码根目录下的eclipse.classpath和eclipse.project两个文件更名为.classpath和.project,内容不变。
在eclipse中把源代码目录按project导入。
因为源代码所依赖的包可能还没有放到build path下,所以需要引用必须的包。
具体需要哪些包,比较让人头疼,可以在eclipse里查看报错的源代码来确定,也可以查看build-properites.xml所要下载的包是否成功下载,并把这些包放到build path中去即可。具体情况可能会因环境而异。
我的情况是需要以下几个包:
geronimo-spec-jaxrpc-1.1-rc4.jar
wsdl4j-1.6.1.jar
ecj-3.3.1.jar
ant.jar
这几个包可以到我的资源下载,链接是:
http://download.csdn.net/source/3015998
此外,eclipse应该引用合适的JRE, 这个比较简单,多次尝试即可。我用的是我自己安装jre6
整个eclipse工程可以在https://sourceforge.net/projects/tomcatstudy/ 找到。
4.启动tomcat6
在eclipse的中, 配置Run Configurations
Main Class: org.apache.catalina.startup.Bootstrap(org.apache.catalina.startup.Catalina也可)
arguments: start
VM arguments: "-Dcatalina.home=E:/hanjy/tomcat/src/apache-tomcat-6.0.32-src/output/build"(这个目录是最开始通过ant build 出来的)
VM arguments指定了编译后的tomcat存放的位置,是由ant build出来的。