1. 程式人生 > >Tomcat6 原始碼編譯過程全過程

Tomcat6 原始碼編譯過程全過程

最近想寫幾篇關於jsp底層原理的文章,感覺還是從原始碼入手比較好。想了想還是從tomcat原始碼開始吧。從網上找了幾篇關於ant的文章看了看,感覺還行,因為編譯tomcat必須要了解ant方面的知識的。不說廢話了,現在開始。

1.myeclipse6

上圖是檢出原始碼後的目錄,現在並沒有lib,share output這幾個個目錄,這個目錄是編譯後才生成的。

1.安裝ant ,這個就不說了網上有的是資料

2.tomcat6 這個目錄拷貝到一個儘量簡單的目錄 我的是c/tomcat6

3.複製一份tomcat6 build.properties.default

檔案並重名為build.properties

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

剛開始建的工作空間中並覆蓋從svndown下的程式碼

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 中在文章中貼幾張圖片 太麻煩了!