用過eclipse的人都知道 有個to mc at eclipse的外掛程式,可以很方便的調試tom cat 項目,具體配置就不多說了,看一下外掛程式的使用說明就知道了
當用過maven管理項目後,雖然也有 maven tomcat 外掛程式,但用做修改頻繁的項目時很不方便。由於maven項目結構和eclipse 預設產生的項目結構不同,webapp下沒有class和jar,直接用tomcat eclipse調試肯定不行了。不過還是有曲線救國的辦法的
以下部分摘自網路
1.修改tomcat的server.xml設定檔,在host結點下添加如下代碼
<Context docBase="F:\webapp" path="/demo" reloadable="true"></Context>
這樣tomcat便可以即時感知到F:\webapp目錄下檔案的變化並自動重新部署了。但是,我們的class檔案和設定檔是編譯在target/classes下呀。別急,繼續。
2.回到eclipse中,右擊demo項目,選java build path ,點擊source選項卡,修改最下面的Default output fold er為demo/src/main/webapp/WEB-INF/classes。再選擇上面的demo/src/main/java及demo/src/main/resources下的Output folder選項,點擊edit按鈕,選擇第一項Project's default output folder,點擊OK。
這樣java會被編譯到WEB-INF下的classes目錄,為tomcat所感知了。可是,還有項目的maven依賴包呢。
3.一般情況下,一個項目的依賴包一旦穩定下來,不會有太多的變動。因此,直接把maven依賴包拷到WEB-INF/lib下即可。具體做法如下:
進入 命令 行,切換目前的目錄到項目根目錄下。運行命令
引用 mv n depende nc y:copy-dependencies
這時候demo項目的依賴包會被導到target/dependency下,將它們拷到WEB-INF/lib下即可。如果依賴包有變動,再導一次就好了。
注意:
如果最後要用maven將項目打包成war,還需要將java類的編譯路徑改回來,並且刪除掉WEB-INF下的classes目錄和lib目錄,否則會報錯
華麗的分割線-----------------------轉載結束---------------------
總結一下,上面的方法雖然解決了tomcat熱部署和調試的問題,但畢竟的稍微動了maven的結構,其實用jetty做伺服器調試可以完美的配合eclipse和maven 運行,不存在tomcat的那些問題,只需要安裝 run jetty外掛程式就可以了。實際項目中,我們可以用jetty做開發的服務,利用maven打war包部署的tomcat上