下面介紹的兩種方法可以讓maven生成的web工程熱部署到tomcat上。所謂的熱部署即:可以將修改的工程部署到TOMCAT上,而不用讓TOMCAT重啟。
軟件環境:eclipse + tomcat + maven + m2eclipse(如果使用STS,則不用安裝MAVEN和m2eclipse了,因為STS上集成了eclipse和MAVEN)
或:STS+tomcat
方法一:
1.
到D:/apache-tomcat-7.0.29-windows-x86/apache-tomcat-7.0.29/conf/tomcat-users.xml(D:/apache-tomcat-7.0.29-windows-x86/apache-tomcat-7.0.29為TOMCAT的存放路徑,注意:TOMCAT不需要安裝,下載后解壓就行了)文件中定義一個tomcat用戶(maven將使用這個用戶往tomcat上發布maven web項目)。
1 < tomcat-users > 2 < user username = "manager" password = "tomcat" roles = "manager-gui" /> 3 </ tomcat-users>
2.
啟動tomcat,然后訪問 http://localhost:8081/manager/html (注意此處我把TOMCAT的監聽端口改為了8081,TOMCAT默認的監聽端口為8080,可以在D:/apache-tomcat-7.0.29-windows-x86/apache-tomcat-7.0.29/conf/server.xml文件中進行修改),輸入manager/tomcat(用戶名/密碼), 如果出現以下界面,表示tomcat一切正常:
3.
在maven的settings.xml的servers結點下添加如下代碼:(讓maven在發布項目時用這個manager/tomcat(用戶名/密碼)這個賬號訪問tomcat)
1 <server> 2 <id>tomcat</id> 3 <username>manager</username> 4 <password>tomcat</password> 5 </server>
4.
在eclipse中新建一個打包類型為war的maven項目,在這里我將項目名稱命名為demo。
5.
修改pom.xml文件,格式如下:在<build> 標簽中插入下面代碼
1 <build> 2 <finalName>jiudian</finalName> 3 4 <plugins> 5 <plugin> 6 <groupId>org.codehaus.mojo</groupId> 7 <artifactId>tomcat-maven-plugin</artifactId> 8 <version>1.0-beta-1</version> 9 <!-- 告訴maven用admin/admin賬號訪問setting.xml中id為tomcat的服務器,去http://localhost:8081/manager/html這個地址發布我的項目 --> 10 <configuration> 11 <url>http://localhost:8081/manager/html</url> 12 <server>tomcat</server> 13 <username>manager</username> 14 <password>tomcat</password> 15 </configuration> 16 </plugin> 17 </plugins> 18 </build>
6.
在src/main/webapp下創建WEB-INF目錄,在其它創建web.xml文件,內容如下(下面內容是建立web.xml文件后IDE自動添加的,不需要手動添加):
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 4 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 5 </web-app>
再在src/main/webapp下創建一個測試用的jsp文件index.jsp即可。建立的index.jsp的內容如下:
1 <%-- 2 Document : index 3 Created on : 2012-8-19, 18:49:55 4 Author : Dell 5 --%> 6 7 <%@page contentType="text/html" pageEncoding="UTF-8"%> 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 9 "http://www.w3.org/TR/html4/loose.dtd"> 10 11 <html> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 14 <title>JSP Page</title> 15 </head> 16 <body> 17 <h1>Hello World!</h1> 18 <h1>This my first Blog!</h1> 19 </body> 20 </html>
7.
Demo項目,鼠標右鍵,Run As 選擇 Maven build......,出現如下界面:
在Goals中添加點東西:package tomcat:redeploy
package tomcat:redeploy表示:運行Maven build時將項目打包,同時部署到tomcat上。
8.
點擊Run As按鈕->再選擇Maven build,然后就會對項目進行打包,同時注意觀看Console中的輸出信息,注意相應的waring,error的提示。如果最后沒有顯示Buid Success則說明打包部署成功。訪問:http://localhost:8081/demo/index.jsp 。如果瀏覽器上出現了index.jsp中的內容,則說明部署到了TOMCAT上去了,並且可以成功運行了。
然后,如果我們修改index.jsp的內容。然后再選擇Maven Build。則會重新打包(war包),並部署到TOMCAT上。再刷新網頁,則會出現最新的內容。
如果每做一次修改,想馬上看到效果,卻都要重新打包一次,這在大規模開發中太影響效率了。如果添加額外的步驟,即方案2。就可以了。
方案二:
1.修改tomcat的server.xml配置文件,在host結點下添加如下代碼
如果經過上述的步驟后,部署時仍然出現一些問題。則請看文章:STS MAVEN對項目進行打包是的一些warning,error的解決方案。