下面介绍的两种方法可以让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>tomcatid>
3 <username>managerusername>
4 <password>tomcatpassword>
5 server>
4.
在eclipse中新建一个打包类型为war的maven项目,在这里我将项目名称命名为demo。
5.
修改pom.xml文件,格式如下:在
1 <build>
2 <finalName>jiudianfinalName>
3
4 <plugins>
5 <plugin>
6 <groupId>org.codehaus.mojogroupId>
7 <artifactId>tomcat-maven-pluginartifactId>
8 <version>1.0-beta-1version>
9
10 <configuration>
11 <url>http://localhost:8081/manager/htmlurl>
12 <server>tomcatserver>
13 <username>managerusername>
14 <password>tomcatpassword>
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 Pagetitle>
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的解决方案。