深入理解IntelliJ的Web部署邏輯

2021-10-01 17:19:00 字數 1559 閱讀 2028

附上三篇有關文章:

加上一段自己的擴充套件:

上面幾篇文章把idea啟動tomcat流程說的比較明白了,但是作為乙個愛捯飭的娃,怎麼可能不試試也這樣啟動呢?

前面的文章說了%catalina_base%是tomcat的工作目錄,其預設值為%catalina_home%,即tomcat的安裝目錄。%catalina_base%初始化過程為(catalina.bat):

if not "%catalina_base%" == "" goto gotbase

set "catalina_base=%catalina_home%"

:gotbase

%catalina_home%,其初始化過程為:

set "current_dir=%cd%"

if not "%catalina_home%" == "" goto gothome

set "catalina_home=%current_dir%"

if exist "%catalina_home%\bin\catalina.bat" goto okhome

cd ..

set "catalina_home=%cd%"

cd "%current_dir%"

:gothome

通過上面的初始化**可以看出%catalina_home%%catalina_base%要麼從當前工作目錄獲取要麼從環境變數獲取,若不配置%catalina_home%%catalina_base%環境變數那麼其值就是tomcat安裝目錄。

由於idea的tomcat專案目錄($\.intellijidea2019.3\system\tomcat)下僅包含一些配置檔案,不含bin等啟動檔案。因此可以想象其應該是通過設定臨時環境變數(只在當前環境有效)實現的,沿著這個思路我們也來手動模擬一下idea啟動tomcat的過程:

#命令列操作

#當前路徑為tomcat安裝路徑或bin目錄下

>set catalina_base=《輸入idea的tomcat專案目錄》<\專案名稱》 #如 set catalina_base="c:\users\yourcomputer\.intellijidea2019.3\system\tomcat\unnamed_web_test" (加引號能夠避免路徑含空格帶來的問題)

>catalina.bat run

#列印結果

.....

.....

using catalina_base: "c:\users\yourcomputer\.intellijidea2019.3\system\tomcat\unnamed_web_test"

using catalina_home: "c:\tomcat\apache-tomcat-7.0.94"

.....

.....

ojbk ?

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...