Eclipse導入Tomcat源碼

最近有了看源碼的衝動,剛把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

  • ant.jar
  • jaxrpc.jar
  • org.eclipse.jdt.core_3.3.1.v_780_R33x.jar
  • wsdl4j-1.5.1.jar

導入後就清爽了! 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,能夠發現裏面多了一個文件夾:outputoutput文件夾的結構以下:

 

進入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"

而後就能夠啓動了!

注意:這裏僅表明啓動成功,還不能對外提供訪問。

相關文章
相關標籤/搜索