在eclipse中導入並編譯Tomcat源代碼

轉載請註明出處:https://blog.csdn.net/IT_moshang/article/details/90973158

1.安裝並配置ant的運行環境

下載地址:https://ant.apache.org/bindownload.cgi

我下載的版本是1.10.6

配置ant運行環境步驟:(默認jdk已經配置好,不懂可以去網上查找相關資料,這裏就不細講了。)

配置classpath

配置path

添加ant_home

 

2.下載tomcat源碼

下載地址:https://tomcat.apache.org/download-90.cgi

我下載的版本是9.0.20(紅框中的兩種都可以,我下載的是第一個)

解壓:

我解壓的位置是:D:\tomcatSourceCode\apache-tomcat-9.0.20-src

  1. 在tomcat解壓目錄下的同級目錄新建一個依賴包文件夾,命名

爲:apache-tomcat-9.0.20-dependedlibs

  1. 修改目錄(tomcat解壓目錄)下的“build.properties.default”重命名爲“build.properties”
  2. 在“build.properties”查找base.path,修改爲如下圖:

  1. 打開cmd,在tomcat解壓目錄下,運行命令:ant download,若提示:BUILD FAILED,直接跳過這步,(不會有什麼影響,不用擔心)
  2. 繼續在該目錄下運行命令:ant

 

檢驗ant安裝成功

 

 

3tomcat源碼導入eclipse

  1. 在Eclipse中新建Java Project,我命名爲:Tomcat9,把Tomcat解壓目錄下的java、test兩個源碼目錄導入(導入模式爲:File System)到Tomcat9中。
  2. 注意:分批導入;導入前,在Options選擇框中注意勾選“Create top-level folder”,否則不會生成層級目錄結構
  3. 把java和test兩個目錄標記爲source folder,右鍵選擇文件夾->Build Path->Use as Source Folder,標記爲source folder後兩個代碼目錄都出現了錯誤,這是因爲缺少依賴包。

 

4導入依賴包

  1. ant.jar,在你安裝的ANT目錄:%ANT_HOME%/lib下。
  2. jaxrpc.jar在Eclipse的plugin目錄下,可以通過搜索查找位置。
  3. junit.jar,test包中需要,可以使用Eclipse自帶的。
  4. org.eclipse.jdt.core_3.10.2.v20150120-1634.jar,這個也在在Eclipse的plugin目錄下。
  5. wsdl4j-1.5.1.jar,去網上下載,我下載的是:wsdl4j-1.6.1.jar(下載地址:http://www.java2s.com/Code/Jar/CatalogJar.htm)。

導入成功後,java將不在出現錯誤,但test還是會有錯誤,網上有些地方說刪掉,但我發現越刪錯誤的包越多,所以就就建議不要刪,反正對編譯也沒有影響。

編譯java下的Bootrap,具體路徑如下:

你會發現編譯還沒有成功。這是因爲當前項目路徑下沒有lib和conf這兩個文件夾,從而找不到服務器配置文件server.xml,當然也就不能實例化服務器了。

解決方法

a、把前面編譯生成的output目錄下的/build/下的lib和conf兩個目錄拷貝到tomcat下,這時就可以直接啓動了。

b、第二種方法就是添加VM參數,指定這兩個文件夾的具體路徑,用VM的-D參數指定catalina.home屬性值爲具體的路徑,具體方法如下:

 

Run as -> Run Configuration... - > Arguments -> 設置VM arguments ->然後Run就可以啓動了

設置VM arguments中的路徑是tomcat解壓目錄下的output中的build(要結合自身存放位置做相應的修改)

修改好之後重新跑一遍Bootrap

如若想下圖這樣則說明tomcat開啓成功

接着在瀏覽其中輸入:http://localhost:8080

出現如圖則說明成功,大家可以放開手腳讀源碼了。

 

附上一個小插曲:

一開始我的服務器開啓成功,不過在瀏覽器訪問時出現了錯誤,

後來我對這段代碼進行了註釋,就可以訪問了。

 

參考網址:

https://www.cnblogs.com/dlutfengyu/p/5346080.html

https://www.cnblogs.com/southday/p/9821332.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章