咨詢
交流群
電話

開發環境下部署的方法和原理

文檔 > 二次開發 2018-07-09 13:01 閱讀

Tomcat部署目錄

Tomcat部署非常簡單,直接把程序復制到{Tomcat安裝目錄}/webapps目錄下即可。該目錄下會有很多默認的文件夾,如docs examples host-manager manager ROOT,這些都是Tomcat的文檔、演示以及管理平臺,實際使用中都不需要,如果配置不當甚至還會有安全隱患。所以在部署前,要先刪除這些文件夾。

webapps下有一個特殊的文件夾ROOT,放在該目錄下會作為Tomcat訪問的根目錄,比如/webapps/ROOT/index.html的訪問地址為http://localhost:8080/index.html。而/webapps/abc/index.html的訪問地址則為http://localhost:8080/abc/index.html。因此大部分情況下,都是部署在ROOT目錄。

通過修改tomcat的server.xml文件可以改變tomcat的部署位置,但如果不是非常精通Tomcat,我們不建議你這么做。特別是在部署碰到錯誤時,更應該放棄這種做法。我們碰到過很多因為修改tomcat配置導致錯誤的案例。

maven目錄結構與部署的關系

  • /src/main/java/ 源碼目錄。編譯后會保存在/target/classes/目錄。該目錄不用直接參與部署。
  • /src/main/resources/ 資源目錄。編譯后會也會保存在/target/classes/目錄。該目錄不用直接參與部署。
  • /src/main/wabapp/ web程序的頁面、圖片、css、js等文件。該目錄的文件可以需要部署在{tomcat}/webapps/ROOT/目錄下。如/src/main/webapp/index.html則部署到{tomcat}/webapps/ROOT/index.html。
  • /target/classes/ 編譯后會自動生成該目錄,包含/src/main/java//src/main/resources/中的內容。該目錄下的文件需要部署在{tomcat}/webapps/ROOT/WEB-INF/classes/目錄下。

綜上所述,只要將/src/main/wabapp//target/classes/復制到tomcat相應目錄即可,但還缺少依賴包,即{tomcat}/webapps/ROOT/WEB-INF/lib/目錄下的jar包。

maven打包

使用mvn package或者mav install可以得到完整的war包。直接在命令行使用maven命令,或者使用eclipse、idea等開發工具中相應的功能,都可以實現打包。

打包后在/target目錄下會出現類似jspxcms-9.0.0.war的文件。war文件和zip文件格式是一樣的,可以使用解壓軟件打開。解壓后得到的文件就是上述的/src/main/wabapp/、/target/classes/和依賴包/WEB-INF/lib/組成的。

war部署

war文件可以直接部署到{Tomcat安裝目錄}/webapps/運行tomcat后會自動解壓,解壓的目錄和war文件名是一樣的,比如{Tomcat安裝目錄}/webapps/jspxcms-9.0.0.war會解壓成{Tomcat安裝目錄}/webapps/jspxcms-9.0.0。通過上面的知識可以知道,要訪問到這個程序,訪問地址應該是http://localhost:8080/jspxcms-9.0.0/,而這個訪問地址http://localhost:8080/是無法訪問的。這顯然不是我們想要的。這時需要將jspxcms-9.0.0.war重命名為ROOT.war,解壓后成{Tomcat安裝目錄}/webapps/ROOT/,這樣就可以通過http://localhost:8080/訪問了。

有一點需要注意,如果一個目錄已經存在{Tomcat安裝目錄}/webapps/ROOT/,只替換ROOT.war包,這樣不會重新解壓。需要將ROOT目錄刪除再替換ROOT.war文件才會重新解壓。

东平县| 台湾省| 通海县| 靖州| 卓资县| 铜山县| 平陆县| 隆昌县| 句容市| 泰安市| 内江市| 甘谷县| 唐河县| 桃园县| 太保市| 芷江| 弥勒县| 嘉祥县| 安庆市| 拉萨市| 上饶市| 香格里拉县| 霍州市| 焦作市| 常山县| 宁明县| 沁源县| 诸暨市| 云安县| 铜梁县| 阳原县| 交城县| 嵊泗县| 通州区| 邢台市| 广平县| 南岸区| 玉溪市| 云南省| 策勒县| 杭锦后旗|