之前開發用過jetty來調試maven項目,不過那時也有點渾渾噩噩的,就是使用而已,業餘時間都奉獻給了遊戲。最近在鼓搗maven,就記錄一下最近搭建Eclipse中使用Tomcat調試maven項目的過程,之後忘記或者中間有什麼問題時能夠查到。html
廢話很少說,下面開始搭建:web
1. 安裝Maven(配置Maven環境變量+Eclipse中的Maven插件)瀏覽器
這步就很少說了,網上一搜一大把,要說明的只有一點,第一次配好Maven插件,必定要更新一次遠程庫的索引,這樣添加依賴的時候就不會出現搜不到那個jar包的狀況了(固然要先啓用遠程庫的index,否則也搜不到jar包的)tomcat
2. 新建Maven項目、配置服務器
新建了Maven項目後,屬性->Project Facets->"convert to faceted form...",在隨後出現的Project Facet中勾選以下2項,注意選擇後面的version:app
選擇好了,肯定,在次打開 項目->屬性,能夠看到多了一個Deployment Assembly選項,打開能夠看到這裏配置的是文件夾和發佈文件夾的對應關係eclipse
因爲maven打包時默認從src/main/webapp目錄下面取web.xml文件,咱們還要手動在下面創建一個這樣的文件。ssh
3. 配置調試的服務器(Apathc Tomcat)webapp
以下圖所示,Eclipse中新建一個Tomcat容器:maven
3. 運行Maven項目
通過上面的配置,是否是就能夠運行咱們的maven項目了呢??固然能夠。
選擇了上圖所示的「Run on Server」後能夠運行咱們的Maven項目了。
4. 剩餘問題
(1)、 咱們瀏覽器輸入「http://localhost:8080/ssh2/index.html」返回404??
不要急,能夠到工做空間的目錄.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps下面看到有個咱們的maven項目名稱的文件夾,這是咱們調試時自動發佈的目錄,能夠看到下面並無咱們添加的頁面,神馬狀況??
這是咱們沒有配置src/main/webapp的發佈目錄,因此調試時也沒有把下面的html等內容發佈
解決:
項目 —> 屬性 -> Deployment Assembly -> Add -> folder -> 選擇src/main/webapp
這一步就是配置webapp目錄要發佈到項目的根目錄下,咱們再看到.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\ssh2目錄下面有自動發佈的html文件
刷新瀏覽器頁面,OK頁面出來了!!!
(2)、是否是這樣就OK了??答案是否認的。
咱們在pom.xml中添加了那些依賴的jar後,一旦在代碼中應用。當咱們本地調試時,會報ClassNotFound錯誤,這是爲何??
由於Tomcat不懂這些配置,你必須把Maven Dependencies中的jar與發佈目錄配置好:
項目 —> 屬性 -> Deployment Assembly -> Add -> Java Build Path Entries -> 選擇Maven Dependencies -> Finish -> OK
這一步就是配置Maven依賴包發佈目錄,這樣調試時會自動把那些jar發佈到指定目錄下,tomcat也能找到那些jar了。