编译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出来的。