Tomcat6 原始碼編譯過程全過程
最近想寫幾篇關於jsp底層原理的文章,感覺還是從原始碼入手比較好。想了想還是從tomcat原始碼開始吧。從網上找了幾篇關於ant的文章看了看,感覺還行,因為編譯tomcat必須要了解ant方面的知識的。不說廢話了,現在開始。
1.在myeclipse6中
上圖是檢出原始碼後的目錄,現在並沒有lib,share 和output這幾個個目錄,這個目錄是編譯後才生成的。
1.安裝ant ,這個就不說了網上有的是資料
2.把tomcat6 這個目錄拷貝到一個儘量簡單的目錄 我的是c:/tomcat6
3.複製一份tomcat6 下build.properties.default
4.開啟build.properties 修改base.path= c:/tomcat6/share, 在c:/tomcat6 下建一個目錄share 這個目錄是tomcat 在編譯是用來儲存其依賴的 庫檔案。
5.由於在build.properties 中jdt.loc=http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip 中這個連結已經失效 ,所以為了預防編譯是出錯 最好先下載 eclipse-JDT-3.2.zip 這個檔案
這個檔案將近20M 。
6.下載這個檔案後, 我為了方便 在機器上起了個tomcat服務 並把這個檔案放到了tomcat下 webapps/ROOT 主目錄中 ,那麼 可以在build.properties 中修改
這樣也行。
7.下一步就是編譯你的機器上最好裝有jdk1.5 ,最好設有JAVA_HOME 這個path,這是為了防止不必要的錯誤。
8.在命令列下鍵入 cd c:/tomcat6切換到 tomcat6 目錄中 後執行 ant download
Ant會自動把tomcat6所依賴的包下載到 c:/tomcat6/share
如果提示成功的話,在此可能有好多警告,不必理會。
9.如果上訴過程成功的話那麼恭喜你了,至少我當時是在上個步驟被折磨的不輕
下邊繼續在命令列中鍵入 ant ,開始編譯。
11.編譯成功後把這個目錄拷貝到D:/myEclipse6Tomcat6_20100429
剛開始建的工作空間中並覆蓋從svn上down下的程式碼
12.在tomcat6 中新建一個資料夾lib用來儲存以下檔案
ant.jar (請在ant安裝目錄的lib子目錄中拷貝)
commons-collections-3.1.jar (從剛才Ant下載的commons-collections-3.1子目錄中拷貝)
commons-dbcp-1.2.1.jar(從剛才Ant下載的commons-dbcp-1.2.1子目錄中拷貝)
commons-logging-1.1.jar(如果您本機沒有這個jar包,請從http://commons.apache.org/downloads/download_logging.cgi處下載)
commons-pool-1.2.jar(從剛才Ant下載的commons-pool-1.2子目錄中拷貝)
org.eclipse.jdt.core_3.2.0.v_671.jar(從剛才Ant下載的eclipse/plugins子目錄中拷貝)
把以上檔案拷貝到lib資料夾中,並把這些jar檔案加入到tomcat6 專案的classpath中
13. 在myeclipse中選擇window-》Preference-》MyEclipse-》server-》tomcat-》
Tomcat6.x-》
這個過程應該很簡單 就是平時配置tomcat的過程
完成以上過程 會在 servers檢視中出現 tomcat6.x
然後在org.apache.catalina.startup. Bootstrap 的main方法中設幾個斷點,以debug模式啟動tomcat6 就可以除錯tomcat了。
錯誤處理:
Ant錯誤 1
downloadzip:
[get] Getting: http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip
[get] To: D:/carl_wu/tomcat/share/file.zip
[get] Error opening connection java.io.FileNotFoundException: http://sunsite.informatik.rwth-aachen.de:3080/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip
[get] Error opening connection java.io.FileNotFoundException: http://sunsite.informatik.rwth-aachen.de:3080/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip
[get] Error opening connection java.io.FileNotFoundException: http://sunsite.informatik.rwth-aachen.de:3080/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip
[get] Can't get http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip to D:/carl_wu/tomcat/share/file.zip
BUILD FAILED
D:/carl_wu/tomcat/src/build.xml:554: The following error occurred while executing this line:
D:/carl_wu/tomcat/src/build.xml:514: Can't get http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip to D:/carl_wu/tomcat/share/file.zip
出現這個錯誤請參照第6和第7步
還有其他錯誤可能是因為你ant安裝錯誤,或jdk安裝錯誤,建議jdk使用1.5
並在環境變數中加入 JAVA_HOME這個變數,這樣出錯機會可能小點。
以下是我上傳的編譯後項目的地址,我的檔案上傳許可權只有15m,所以分成了4個檔案,下載後解壓匯入到myeclipse中 按照第13步配置後就可以用了
順便說幾句csdn 中在文章中貼幾張圖片 太麻煩了!