本篇文章將說下如何將tomcat的8.5版本源碼導入到idea中, 然后啟動容器卦方。
下載tomcat 8.5.50源碼美侦,可以去github下也可以去tomcat的官網(wǎng)下載src版本曼氛,我是從github下載檀蹋,鏈接如下:
github: https://codeload.github.com/apache/tomcat/zip/8.5.50
官網(wǎng): http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.50/src/apache-tomcat-8.5.50-src.zip-
將下載下來的解壓这弧,將build.properties.default復制一份欠肾,重新命名為build.properties
- 編輯build.properties,看下如下配置項:
base.path=${user.home}/tomcat-build-libs
這個配置是告訴tomcat將build時的依賴下到哪里骑晶,默認是如上路徑痛垛,比如我的就沒改這個配置,就放在了/Users/zihao/tomcat-build-libs下透罢,按需配置榜晦,非必需
安裝ant,可以下載二進制包https://mirrors.tuna.tsinghua.edu.cn/apache//ant/binaries/apache-ant-1.9.14-bin.zip
或者brew install ant執(zhí)行如下命令
ant ide-intellij
備注: 如果下載了ant的二進制包羽圃,ant可以添加環(huán)境變量或者使用ant的絕對路徑
可以打開build.xml文件,ant ide-intellij這個命令對應(yīng)如下配置項目
<target name="ide-intellij"
depends="download-compile, extras-webservices-prepare, download-test-compile"
description="Creates project directory .idea for IntelliJ IDEA">
<copy todir="${tomcat.home}/.idea">
<fileset dir="${tomcat.home}/res/ide-support/idea"/>
</copy>
<echo>IntelliJ IDEA project directory created. Please create PATH VARIABLES for
ANT_HOME = ${ant.home}
TOMCAT_BUILD_LIBS = ${base.path}
</echo>
</target>
-
上一步執(zhí)行完后抖剿,打開idea朽寞,直接打開這個項目, 內(nèi)容大概是和下面那個圖一樣:
添加環(huán)境變量和依賴
-
添加環(huán)境變量
第一次打開的時候,idea會提示"Load error: undefined path variables",打開Preference斩郎,找到Path Variables脑融,添加ANT_HOME和TOMCAT_BUILD_LIBS
-
添加依賴
打開project structure-->libraries,添加依賴,這些依賴可以在base.path找到缩宜,ant的lib需要自己額外下載下肘迎,直接去mvn repository下一個添加進來就好。
-
側(cè)邊有個Ant, 一只螞蟻的tab頁锻煌,點擊打開妓布,添加build.xml位置
-
展開Tomcat 8.5,執(zhí)行deploy任務(wù)
選中deploy,然后點擊上面的綠色按鈕執(zhí)行宋梧。
10.deploy執(zhí)行完后匣沼,可以看到下載的tomcat源碼目錄下的output下添加了一個build文件夾,這個對應(yīng)第10步中catalina.home的路徑
-
org.apache.catalina.startup.Bootstrap這個是tomcat的啟動類捂龄,Vm.options添加如下運行配置
Vm.options具體內(nèi)容如下:
-Dfile.encoding=UTF8 -Dcatalina.home="/Users/zihao/Documents/code/Java/github/tomcat-8.5.50/output/build" -Duser.language=en -Duser.region=US
-Duser.language=en -Duser.region=US這兩句話不加可能執(zhí)行會亂碼释涛,可以去掉試下會不會亂碼,??
-
最后執(zhí)行啟動這個Bootstrap類倦沧,訪問localhost:8080就有了那只??的界面
感謝如下鏈接:
https://www.shuzhiduo.com/A/pRdBP8XPJn/ 解決了我亂碼問題
https://www.cnblogs.com/wasp520/archive/2012/07/01/2572223.html
解決了我啟動時報SessionListener錯誤的問題