日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编译Tomcat9源码【转】

發布時間:2025/4/5 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译Tomcat9源码【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:https://www.jianshu.com/p/df4db2b80c3a

參考:http://tomcat.apache.org/tomcat-9.0-doc/building.html

1.下載JDK8

安裝JDK8

編譯Tomcat9需要安裝JDK8
下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

設置環境變量:

JAVA_HOME
D:\dev\Java\jdk1.8.0_72
PATH新增:%JAVA_HOME%\bin

2.安裝Ant1.9.5或者更高版本

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

解壓到D:\dev\ant

設置環境變量:

ANT_HOME
D:\dev\ant\apache-ant-1.9.6
PATH新增:%ANT_HOME%\bin

3.獲取Tomcat9的源碼

地址:http://archive.apache.org/dist/tomcat/tomcat-9/
下載是windows版的源碼即zip版的源碼:apache-tomcat-9.0.0.M17-src.zip

然后將其解壓到一個目錄下(D:\dev\workspace),即源碼所在目錄是:D:\dev\workspace\apache-tomcat-9.0.0.M17-src。

4.配置下載區域

編譯Tomcat要下載大量的依賴庫。強烈推薦為這些庫配置下載區域。
進入tomcat源碼的目錄,
即D:\dev\workspace\apache-tomcat-9.0.0.M17-src,

將其中的build.properties.default文件重命名為build.properties,
并修改base.path為:
base.path=D:/dev/workspace/apache-tomcat-9.0.0.M17-src/../lib-tomcat9

5.編譯Tomcat

${tomcat.source}表示tomcat源碼所在目錄。
cd ${tomcat.source}
ant


cd D:\dev\workspace\apache-tomcat-9.0.0.M17-src
ant

運行這條命令將要下載編譯Tomcat所需要的庫文件到base.path指定的目錄中。
一旦編譯成功,一個可用的Tomcat將會被產生在${tomcat.source}/output/build目錄中,且能夠被腳本啟動和關閉。

6.使用Eclipse編譯

(1)生成Eclipse項目

Ant的target 提供一種便捷下載所有二進制依賴關系,和在源代碼樹的根目錄下創建Eclipse項目及classpath文件。
cd ${tomcat.source}
ant ide-eclipse

即:
cd D:\dev\eclipse\workspace\tomcat
ant ide-eclipse

(2)增加Classpath變量

啟動Eclipse,打開Preferences對話框,選擇Java->Build Path->Classpath Variables,增加兩個Classpath Variables:

TOMCAT_LIBS_BASE:

D:/dev/workspace/apache-tomcat-9.0.0.M3-src/../lib-tomcat9
(路徑和在build.properties中的base.path設置一樣,即存放的是已經下載的二進制依賴)

ANT_HOME:

D:\dev\ant\apache-ant-1.9.6
(Ant的根目錄)

(3)配置JRE:

打開Preferences對話框,
選擇Java->Installed JREs->Add。選擇JRE Home:D:\dev\Java\jdk1.8.0_72;
選擇Java -> Compiler,設置Compiler compliance level 等于當前JDK的版本(1.8),默認一般是最新版本。

單擊OK,設置完成。

(4)導入Tomcat源碼到Eclipse中

File->Import->General->Existing Projects into Workspace->選擇Tomcat源碼的根目錄,單擊完成即可導入。
導入完成之后,項目自動完成編譯。

(5)啟動

在Eclipse中找到org.apache.catalina.startup.Bootstrap,使用它作為主類,選中右擊“Run As->Run configurations”,然后雙擊”Java Aplication”就會出來一個新的”Bootstrap”:
進行如下設置:
Name:Bootstrap start
Project:apache-tomcat-9.0.0.M17-src
Main class(Search而來):org.apache.catalina.startup.Bootstrap

Program arguments:start
VM arguments:-Dcatalina.home="D:\dev\workspace\apache-tomcat-9.0.0.M17-src\output\build"

單擊Apply,即可保存設置
接著單擊Run,Tomcat即可啟動。

打開瀏覽器,輸入http://127.0.0.1:8080/examples/ 看看例子。

(6)停止

與(5)同樣的方法設置Bootstrap stop,不同之處在于Program arguments:stop

(7)調試Tomcat源碼的方法
選中org.apache.catalina.startup.Bootstrap,單擊右鍵Debug As->Debug configurations

7.簡單的源代碼閱讀指南

包名用途
javaxservlet/jsp/el相關的api
org.apache.catalinatomcat自身架構
org.apache.coyotehttp、ajp協議實現相關的類
org.apache.el實現el規范
org.apache.jasper實現jsp規范、編譯jsp文件
org.apache.julitomcat的日志系統
org.apache.namingjndi實現
org.apache.tomcattomcat的工具包、net、digester xml解析器

閱讀順序:
可以從org.apache.catalina.startup.Bootstrap這個類開始看起,
然后到org.apache.catalina.startup.Catalina,
在Catalina類中會觸發conf/server.xml文件的解析,
這時要看org.apache.tomcat.util.digester中的類,
解析的過程中會用到org.apache.catalina.startup包中的很多RuleSet類,
server.xml文件解析完后,會生成org.apache.catalina.core包中的各種StandardXXX類的實例,
比如StandardServer、StandardService、StandardEngine等等,
這些Standard組件都是有生命周期的,接著會調用他們的init、start等方法,
會觸發下面這些組件進入init、start狀態
org.apache.catalina.connector.Connector
org.apache.coyote.http11.Http11Protocol
org.apache.tomcat.util.net.JIoEndpoint
在JIoEndpoint(或NioEndpoint、AprEndpoint)中會監聽8080這樣的端口,
有請求進來了,就進行相關的io操作,接著轉到org.apache.coyote包中的相應類進行協議解析,
生成org.apache.catalina.connector.Request和org.apache.catalina.connector.Response實例,
然后轉到各種Valve、應用Filter,最后到達應用的Servlet/JSP。

下圖描述了Tomcat7的核心架構:

Tomcat7核心架構圖

轉載于:https://www.cnblogs.com/davidwang456/articles/11068822.html

總結

以上是生活随笔為你收集整理的编译Tomcat9源码【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品久久久久久动漫器材一区 | 国产精品国产三级国产普通话对白 | 在线免费黄 | 男人的天堂视频 | 日本高清视频一区 | a级片免费在线观看 | 日韩在线一区二区 | 亚洲123区| 欧美成年视频 | 日韩欧美国产一区二区 | 国产精品一区电影 | 国产在线看一区 | 97久久综合 | 久久国产精品波多野结衣 | 91超碰免费 | 国产精品久久久影院 | 国内自拍小视频 | 日韩亚洲欧美一区二区 | 国产一区a | 天天干,天天操 | 久久久久久无码精品人妻一区二区 | 91久久精品日日躁夜夜躁国产 | 免看一级片 | 天天综合天天添夜夜添狠狠添 | 国产精品久久久久久久久晋中 | 国产高清精品一区 | 亚洲av综合色区 | 亚洲伦理在线观看 | 国产二级视频 | 伊人网综合 | 色呦呦中文字幕 | 欧美成人免费视频 | 色77777| 激情超碰在线 | 无码人妻精品一区二区中文 | 国产伦精品一区二区三区四区 | 中国国产黄色片 | 国产永久免费视频 | 美腿丝袜av| 日韩免费福利视频 | 五月天视频网站 | 国产aⅴ爽av久久久久成人 | 色婷婷午夜 | 色四月婷婷| 六月综合网 | 国产综合久久久久 | 亚洲网站免费 | 成人av专区 | 中文字幕在线亚洲 | 求一个黄色网址 | 久久亚洲AV成人无码一二三 | 成人一区二区三区视频 | 黑人一区二区三区四区五区 | 午夜成人鲁丝片午夜精品 | 欧美一区二区三区久久 | 精品三区视频 | 欧美激情电影一区二区 | 日韩欧美成人网 | 韩国av网 | 国产激情在线播放 | 91鲁| 国产乱来| 国产免费福利视频 | 男人撒尿视频xvideos | 久久精品免费在线观看 | 亚洲一区中文字幕在线观看 | 91在线高清视频 | 国产天堂av在线 | 视频在线a | 精品少妇人妻一区二区黑料社区 | 国产精品免费视频一区二区三区 | 日本精品在线观看视频 | 三级av毛片 | 国产亚洲女人久久久久毛片 | 91玉足脚交嫩脚丫在线播放 | 色婷婷一区二区三区四区 | 欧美成年人视频在线观看 | 国产精品熟妇一区二区三区四区 | 日韩美一区二区三区 | 免费毛片大全 | 免费观看亚洲视频 | 可以直接观看的av | 中文字幕――色哟哟 | 中文字幕日韩精品亚洲一区小树林 | 亚洲一本二本 | 91在线欧美 | 国产精品久久在线 | 色男人的天堂 | 91久久综合精品国产丝袜蜜芽 | 精品人妻一区二区三区四区在线 | 亚州av在线播放 | 网红av在线 | 国产精品1024 | 欧美精品国产一区二区 | 山村淫强伦寡妇 | 欧美丰满熟妇xxxx | 无码人妻黑人中文字幕 | 久草国产在线观看 | 国产一区二区在线播放视频 |