Tomcat源碼導入eclipse
一、下載源碼
1、 進入Apache 官網:http://tomcat.apache.org/
2、 在左邊側選擇要下載的源碼的版本。
3、 或者直接通過Archives進入源碼目錄
4、 源碼目錄如圖,選擇需要的版本,
5、 進入相應的源碼目錄下載相應的源碼,我的演示下載的是8.026版本的源碼。
二、ANT編譯源碼
如果沒安裝ant,請先安裝ant,ant是一款編譯工具。
編譯步奏:
1、 解壓源碼壓縮包
2、 設置依賴包的下載位置,把上步解壓的目錄中的build.properties.default的文件名去掉后綴default,即重命名為build.properties。在build.properties文件中找到base.path配置項,把該配置項的值改為你希望依賴包下載后存放的位置路徑。
3、 Ctrl+R打開CMD窗口,進入第一步解壓的后的目錄:apache-tomcat-8.0.26-src,
4、 運行命令:ant download,該命令會下載tomcat編譯所需要的包。不知道什么原因,我執行這一步並沒有成功(應該不需要執行這一步,但網上的很多資料都介紹了這一步),但是不要着急,繼續下一步。
5、 運行命令:ant,運行該命可能會花一定的時間,因為這一步需要下載一些依賴包,這些依賴包可能在國外的服務器上,所以下載比較慢,同時還需要編譯,編譯是比較耗時的。在這一步如果命令運行到某處長時間不動了,可以通過Ctrl+C退出,然后重新運行ant命令;如果編譯失敗,可以重新運行ant命令編譯,直到提示編譯成功。
6、 編譯成功后會在目錄:apache-tomcat-8.0.26-src,多出一個新的名字為output的目錄。這就是存放編譯結果的目錄。
三、導入tomcat源碼到eclipse
1、 在eclipse下新建一個project。命名為tomcat8
2、 把解壓目錄中的java和test兩個源碼目錄import到新建的tomcat8工程中。注:兩個目錄不能同時import。
3、 把java和test兩個目錄標記為source folder,右鍵選擇文件夾->Build Path->Use as Source Folder。標記為source folder后兩個代碼目錄都出現了錯誤。這是因為缺少依賴包。
4、導入依賴包:
ant.jar:在你安裝的ant目錄:ANT_HOME/lib下。
jaxrpc.jar:在eclipse下的/plugin/ javax.xml.rpc_xxx(版本號)/lib/目錄下。
org.eclipse.jdt.core_3.10.2.v20150120-1634.jar:在eclipse的plugin目錄下。Eclipse版本不同,名字可能不同。
wsdl4j-1.5.1.jar:可以從網上下。
右鍵tomcat8->Build Path->Configuration Build Path。導入上面的幾個包,java目錄下就沒有錯了,如果test目錄下還有錯,可以注釋掉錯誤的文件。
5、 經過上面的步驟,找到org.apache.catalina.startup下的Bootstrap啟動tomcat源碼,這是不成功。因為當前項目路徑下沒有lib和conf這兩個文件夾,從而找不到服務器配置文件server.xml,當然也就不能實例化服務器了。解決方法:
a、 把前面編譯生成的output目錄下的/build/下的lib和conf兩個目錄拷貝到tomcat下,這時就可以直接啟動了。
b、 二種方法就是添加VM參數,指定這兩個文件夾的具體路徑,用VM的-D參數指定catalina.home屬性值為具體的路徑,具體方法如下:
Run as -> Run Configuration... - > Arguments -> VM arguments中設置:
-Dcatalina.home=” E:\Java\Tomcat\apache-tomcat-8.0.26-src\output\build”,然后Run就可以啟動了。