Springsource tool suite(简称STS)(或Eclipse)将maven工程部署到Tomcat
下面介绍的两种方法可以让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的解决方案。