1. 程式人生 > >編譯Tomcat7.0原始碼

編譯Tomcat7.0原始碼

        編譯Tomcat 7原始碼,使用Myeclipse開發環境除錯tomcat原始碼。

        編譯環境:

        作業系統:Win 7 旗艦版

        JDKjdk 6

        Tomcatapache-tomcat-7.0.53

        Myeclipsemyeclipse 10

        Apache AntAnt 1.9.3

1 下載JDK6

        注意:安裝完JDK 6之後,設定系統的環境變數JAVA_HOME 為JDK的安裝目錄。比如:C:\Program Files\Java\jdk1.6.0_12

 

2 安裝Apache Ant 1.8.1或者更高版本

        以apache-ant-1.9.3-bin.zip為例,解壓壓縮包到一個方便的目錄,目錄的名稱為apache-ant-1.9.3解壓之後如下圖:

 

        注意:解壓完成之後,建立環境變數ANT_HOME,設定該變數的值為E:\software\apache-ant-1.9.3

 

        修改環境變數PATH,並設定為E:\software\apache-ant-1.9.3\bin,這樣編譯原始碼的時候,系統才能找到ant的命令。

3 下載tomcat7原始碼包

 

        下載完成之後解壓,解壓到myeclipse的工作空間下。

 

        Workspaces10-apache-tomcat-7.0.53目錄為我的

myeclipse的工作空間目錄。

4 編譯Tomcat原始碼

        編譯tomcat原始碼成為myeclipse的一個java工程,方便在myeclipse中進行程式碼除錯。

        在tomcat的原始碼目錄下建立libs目錄,該目錄用於存放所有依賴包。

        在tomcat的原始碼目錄下修改配置檔案build.properties.default的檔名稱為build.properties,開啟build.properties,修改配置項base.path的值為E:/Workspaces10-apache-tomcat-7.0.53/apache-tomcat-7.0.53-src/libs

        在cmd命令列中使用如下命令進入到tomcat原始碼目錄,

cd E:\Workspaces10-apache-tomcat-7.0.53\apache-tomcat-7.0.53-src

        執行以下命令,會自動下載依賴的jar包,並存放在libs目錄中,同時編譯tomcat原始碼,並複製res/ide-support/eclipse目錄下myeclipse工程需要的檔案到原始碼根目錄下。

ant ide-eclipse

        注意:使用該命令時,需要連線網際網路,ant會下載依賴的jar包檔案

        編譯完成之後,終端會給出如下的提示資訊,說明編譯成功。

BUILD SUCCESSFUL
Total time: 26 seconds

        一個可用的tomcat被編譯到根目錄下的/output/build目錄下,此時就可以使用一般的指令碼來啟動和停止tomcat

5 Myeclipse除錯原始碼

        開啟myeclipse 10並讓E:\Workspaces10-apache-tomcat-7.0.53目錄作為其工作空間。

        開啟myeclipsePreferences對話方塊,選擇Java->Build Path->Classpath Variables,新增兩個新的Classpath VariablesTOMCAT_LIBS_BASEANT_HOME

        TOMCAT_LIBS_BASE的值為libs目錄所在的路徑,和在build.properties檔案中的base.path配置項相同,E:/Workspaces10-apache-tomcat-7.0.53/apache-tomcat-7.0.53-src/libs

        ANT_HOME設定為ant的根目錄,即E:/software/apache-ant-1.9.3

 

        使用File->Import並選擇Existing Projects into Workspace,在彈出對話方塊中選擇tomcat原始碼根目錄,完成匯入tomcat工程到myeclipse中。

        原始碼目錄下的res/ide-support/eclipse目錄中,提供了兩個檔案start-tomcat.launchstop-tomcat.launch,在myeclipse可以用於啟動和停止tomcat比如拷貝一份start-tomcat.launch至工程的根目錄下,

 

        修改檔案中的tomcat-7.0.x為apache-tomcat-7.0.53-src,

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/apache-tomcat-7.0.53-src/java/org/apache/catalina/startup/Bootstrap.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.catalina.startup.Bootstrap"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="start"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="apache-tomcat-7.0.53-src"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dcatalina.home=${project_loc:/apache-tomcat-7.0.53-src/java/org/apache/catalina/startup/Bootstrap.java}/output/build"/>
</launchConfiguration>

        選中檔案執行,

 

        也可以使用tomcat的主類org.apache.catalina.startup.Bootstrap啟動tomcat

官網文件:

http://tomcat.apache.org/tomcat-7.0-doc/building.html