Maven+Spring+MVC結構中,jetty/tomcat是如何啓動項目的

針對maven配置的spring+MVC項目,我們用Maven自帶的jetty和tomcat插件進行調試,這很方便。但是調試時,這些插件所啓動的web服務器,是如何來將我們的工程作爲一個web項目啓動並運行,可能並沒有看上去那麼簡單。搞清楚它們啓動時,是如何引用我們的項目,就是這的目的。

Maven+Spring+MVC結構中,jetty/tomcat是如何啓動項目的 - Mr.7 - Mr.7

如果項目的名稱是mvn_mvc,那麼整個目錄結構就如上圖。

通常我們首先用mvn package生成上述的target目錄中帶紅色部分。其等效執行 mvn compile test-compile test war:exploded war:war。也就是包含編譯、測試和打包三步驟。接下來我們就可以使用mvn jetty:run或者mvn tomcat:run進行網站啓動,測試運行了。此時會對應生成臨時的jsp目錄,jetty對應的目錄名是work,tomcat對應的目錄名是tomcat。

那麼,項目對應的目錄就是target/mvn_mvc目錄嗎?

非也非也!!!

真正的項目目錄應該是:

  1. 本項目的java類來自於target/classes
  2. 本項目依賴的jar包來自於maven的pom配置(並沒有實際的物理目錄,爲maven插件動態組織管理)
  3. 本項目依賴的配置文件和靜態資源來自於src/main/webapp

綜上所述,可以得到兩個結論就是:

  • 運行時,其實和target/mvn_mvc這個目錄(打包項目目錄)沒有任何關係。所以如果運行過程中如果修改了這個目錄的動態class和靜態文件,就看不到效果。必須改src/main/java和src/main/webapp的才行。
  • 另外,maven設計的項目思想是:src目錄下是純本項目的代碼,沒有任何臨時文件和依賴jar包。這樣也便於代碼的管理:自己寫的是自己的,別人的機器的都放到別處

如果程序調試出現異常,就按照此方法檢查。

發佈了91 篇原創文章 · 獲贊 15 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章