最近有了看源碼的衝動,剛把jvm虛擬機規範看了一遍,想借着看tomcat源碼的機會,順便實操下jvm虛擬機的一些東西,這樣就有了搭建tomcat源碼運行環境的念頭。對着http://www.cnblogs.com/huangfox/archive/2011/10/20/2218970.html這篇文章給的指引,通過一番小折騰,還算順利的搭建好了tomcat的環境,其中有些地方跟博客中講的有點出路。下面是搭建過程。 html
1.Tomcat源碼下載 java
http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.53/src/apache-tomcat-7.0.53-src.zip apache
二、安裝ant,配置環境變量 tomcat
http://url.cn/PSFnLC eclipse
第三部:導入jar包。 jvm
上面那些不爽的紅叉是由於缺乏jar的緣由,咱們如今須要那些jar包呢? 測試
test須要junit.jar,這個直接用eclipse裏面的便可。 ui
java中須要: url
導入後就清爽了! spa
注意:這裏在ant官網下載也能夠。
三、eclipse準備
下載適當版本的eclipse就能夠了
四、ant編譯tomcat源碼(跟導入到eclipse沒什麼關係)
4.1)使用ant編譯tomcat源碼,在編譯以前須要下載相關的依賴項目。咱們並不知道編譯須要哪些依賴項目,怎麼辦?
讓ant來幫忙吧!咱們只須要準備一個存放這些依賴項目的地方,例如E:\users\pengsy\software\basepath。
4.2)要讓ant工做起來,咱們還要將apache-tomcat-7.0.53-src中的build.properties.default重命名爲build.properties,
而且打開它,修改base.path=E:/users/pengsy/software/basepath。這裏特別要注意路徑的寫法,不是「\」而是「/」,不然運行ant會報錯「java.lang.IllegalArgumentException: Malformed \uxxxx encoding」。
4.3)修改配置文件build.xml,去掉2910行的httpusecaches="${trydownload.httpusecaches}",這點是原來那篇博客裏面沒有的。
4.4)等依賴項目下載好後,就能夠編譯tomcat了。執行命令:ant。(這裏注意使用jdk6編譯,而且是jdk6的運行時)當編譯完成後,咱們能夠查看目錄apache-tomcat-7.0.53-src,能夠發現裏面多了一個文件夾:output。output文件夾的結構以下:
進入bin,啓動tomcat成功,就說明——ant編譯tomcat成功了!
五、將tomcat源碼導入eclipse
第一步:
在eclipse裏新建一個java項目,例如:tomcat7。
第二步:
import->file system
在From directory選擇tomcat源碼,選擇java和test(若是你須要測試的話選擇test),以下圖:、
在into folder中選擇咱們剛新建的tomcat7,finish。
note:將java、test設置成source folder,java build path ->Source->Add folder...->選擇java和test。
這裏很奇怪,我選擇的test沒有在工程的目錄結構中顯示出來。(ant命令運行成功以後,纔會有test目錄)
第三步:導入jar包。
上面那些不爽的紅叉是由於缺乏jar的緣由,咱們如今須要那些jar包呢?
test須要junit.jar,這個直接用eclipse裏面的便可。
java中須要:
同時,JDTCompiler用到了jdk1.8的東西,個人作法是直接屏蔽出錯代碼。
導入後就清爽了!
第四步:
在eclipse中啓動tomcat。
找到類:org.apache.catalina.startup包中的Bootstrap類。
run as:在Arguments的VM arguments中設置(注意:在catalina.home指定的目錄中,請事先建立conf目錄,以及在該目錄下放置server.xml文件,否知tomcat啓動不起來)
-Dcatalina.home="d:\output\build"
而後就能夠啓動了!
注意:這裏僅表明啓動成功,還不能對外提供訪問。