目的:獲取tomcat源碼,部署到eclipse進而分析tomcat的架構體系。 java
準備工做: apache
svn客戶端下載
ant下載,環境變量path配置到ant下面的bin
步驟:
2,利用ant進行編譯。
從ant的官網下載(http://ant.apache.org/bindownload.cgi ).zip archive的文件,把壓縮包解壓到D盤根目錄,而後設置環境變量裏添加ant下的bin目錄如(D:\apache-ant-1.8.4\bin),最後運行cmd輸入ant提示build failed表示編譯環境已經配置成功。附:有的系統須要舊的ant來build工程。舊的版本下載地址爲:http://archive.apache.org/dist/ant/binaries/ ,裏面有舊版本的列表。
首先,修改源碼目錄下面的build.properties.default 修改成build.properties。打開它,修改base.path=你硬盤上存在的目錄,好比base.path=F:/tomcatneeded(路徑不能有中文),這樣作的目的是,在ant編譯項目的時候會有一些依賴的項目須要download。
而後,再命令行下,定位到你的源碼目錄,而後運行 ant download 這樣就會把依賴的項目download到tomcatneeded下面了(暫時沒發現用處)。
最後,運行ant命令進行編譯,有可能會報錯,這樣你把編譯環境換成jdk1.5,再試試看。成功以後,在源碼目錄下面會多出一個output文件夾(暫時沒發現用處),這就是你ant的結果。
3,部署到eclipse,import 選擇已經存在的項目,選擇到你的剛纔你編譯後的源碼目錄。這時候有可能不會被eclipse識別,緣由是沒有找到.classpath 與.project這兩個描述文件。你會發如今項目下面只有eclipse.classpath eclipse.protect,這樣內容不變,你只要修改一下這兩個文件名字就能夠了,只能用dos命令「ren」修改文件名。
導入完成後,會看到一些錯誤提示。右擊工程tomcat,選擇"build Path"->Config Build path ,刪除兩個以TOMCAT_LIBS開頭的兩個庫,保留JRE庫和JUnit庫(有的版本有些不一樣,總之只留JRE和Junit庫就能夠了)。
把ant.jar(剛纔下載的ant中的lib裏有)和org.eclipse.jdt.core_3.3.1.v_780_R33x.jar(在eclipse環境下搜索就有)copy到代碼工程下的lib文件夾下(lib文件夾以前沒有,須要手動新建)。選擇「Config Build path」->"Add library",加入一個User library,把這兩個jar包加進來,命名成tomcat_lib。在Tomcat最新版本6.0.18中,有兩個.java代碼文件:ServiceProxy.java和ServiceRefFactory.java中用到了一些其餘包中的類,如import javax.xml.rpc.Service和import javax.wsdl.Definition等類,這些類分別在包jaxrpc.jar和wsdl4j-1.5.1.jar中,這兩個包都在axis2的lib中,我下載的版本是axis-bin-1_4.zip,下載地址是:[url]http://apache.freelamp.com/ws/axis/1_4/axis-bin-1_4.zip [/url] 解壓後在lib目錄能夠看到這兩個jar包,直接加入到工程便可。
4,運行。啓動主類org.apache.catalina.startup包下的Bootstrap類,右鍵Run Configurations 在Program arguments中寫入:start
在VM arguments中寫入:-Dcatalina.home=" F:/tomcat-6.0.x"(路徑是你導入的項目的跟路徑地址),這兩個參數以後,(注意:通常須要修改項目底下conf下的server.xml的三個端口,避免與現有的衝突,,8005改9005,8080改9080,8009改9009)你就會看到tomcat啓動以後在
console打印的消息了。盡情的debug吧! (程序結束後須要等待幾分鐘8080端口就會自動釋放)