前言
下載Tomcat8源碼進行分析,最好的方式,可以編譯及運行,從網上查詢了很多方式,總是不能完整的運行,由於本人采用idea編輯器,所以喜歡maven的方式,所以綜合了網上的多種方案,最終可以在idea下進行編譯及運行。
源碼及環境准備
從網上下載tomcat8,具體地址:http://tomcat.apache.org/download-80.cgi,版本:apache-tomcat-8.0.43。
操作系統mac,編輯器,idea14。
源碼配置
1.由於tomcat的源碼默認采用ant編譯,所以需要本地安裝ant,安裝方式,采用命令行,如下:
$ brew ant
安裝成功后,查看ant版本
$ ant --version
圖1 ant版本查看
2.由於需要導入到idea下,所以在源碼的根目錄需要創建pom.xml,具體如下:
ul<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.tomcat</groupId> <artifactId>Tomcat8.0</artifactId> <name>Tomcat8.0</name> <version>8.0</version> <build> <finalName>Tomcat8.0</finalName> <sourceDirectory>java</sourceDirectory> <!--<testSourceDirectory>test</testSourceDirectory>--> <resources> <resource> <directory>java</directory> </resource> </resources> <!--<testResources>--> <!--<testResource>--> <!--<directory>test</directory>--> <!--</testResource>--> <!--</testResources>--> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <encoding>UTF-8</encoding> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymock</artifactId> <version>3.4</version> </dependency> <dependency> <groupId>ant</groupId> <artifactId>ant</artifactId> <version>1.7.0</version> </dependency> <dependency> <groupId>wsdl4j</groupId> <artifactId>wsdl4j</artifactId> <version>1.6.2</version> </dependency> <dependency> <groupId>javax.xml</groupId> <artifactId>jaxrpc</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.eclipse.jdt.core.compiler</groupId> <artifactId>ecj</artifactId> <version>4.5.1</version> </dependency> </dependencies> </project>
3. 創建 catalina-home,目前需要與tomcat源碼的位置平級,如下:
4. 在命令行下,進入到 apache-tomcat-8.0.43-src 下(源碼的根目錄),運行ant命令
編譯之后會在根目錄下生成output文件夾,之后將/output/build/ 下的temp、bin、conf、webapps、logs 復制到catalina-home下,需要復制文件見下圖:
圖2 output目錄
運行配置
IDEA導入pom.xml 文件,將工程打開。在Run菜單,點Edit Configurations,點“+”,選Applcation,配置如下:
圖3 運行配置
在Man class:中填入,org.apache.catalina.startup.Bootstrap
在VM options:中填入,你剛剛設置catalina-home路徑,我的是:-Dcatalina.home="/Users/jihuan/Documents/workspace/catalina-home"
Working directory是默認的,不用管
Use class path of module里選擇Tomcat8.0,這個和你在pom.xml中的配置有關
JRE,我選擇的是1.8
最后點OK。
右上角運行項目里,選擇:BootStrap ,點run 或者run的圖標按鈕。
圖4 啟動效果
在瀏覽器中輸入 localhost:8080 ,效果見下圖:
圖5 運行效果
最后
Tomcat8的源碼經過一番折騰,終於搭建完畢,剩下的就可以調試及開發源碼了。
本人可以運行的源碼已上傳到github,地址:https://github.com/jk01/test