轉載請註明出處: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
- 在tomcat解壓目錄下的同級目錄新建一個依賴包文件夾,命名
爲:apache-tomcat-9.0.20-dependedlibs
- 修改目錄(tomcat解壓目錄)下的“build.properties.default”重命名爲“build.properties”
- 在“build.properties”查找base.path,修改爲如下圖:
- 打開cmd,在tomcat解壓目錄下,運行命令:ant download,若提示:BUILD FAILED,直接跳過這步,(不會有什麼影響,不用擔心)
- 繼續在該目錄下運行命令:ant
檢驗ant安裝成功
3將tomcat源碼導入eclipse
- 在Eclipse中新建Java Project,我命名爲:Tomcat9,把Tomcat解壓目錄下的java、test兩個源碼目錄導入(導入模式爲:File System)到Tomcat9中。
- 注意:分批導入;導入前,在Options選擇框中注意勾選“Create top-level folder”,否則不會生成層級目錄結構
- 把java和test兩個目錄標記爲source folder,右鍵選擇文件夾->Build Path->Use as Source Folder,標記爲source folder後兩個代碼目錄都出現了錯誤,這是因爲缺少依賴包。
4導入依賴包
- ant.jar,在你安裝的ANT目錄:%ANT_HOME%/lib下。
- jaxrpc.jar在Eclipse的plugin目錄下,可以通過搜索查找位置。
- junit.jar,test包中需要,可以使用Eclipse自帶的。
- org.eclipse.jdt.core_3.10.2.v20150120-1634.jar,這個也在在Eclipse的plugin目錄下。
- 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