如何通过Maven的Tomcat插件运行Web工程

================运用插件内部tomcat直接运行==========================================

去tomcat官网http://tomcat.apache.org/,左侧栏Apache Tomcat下的Maven Plugin,点进去选择最新版本Version 2.2

通过介绍可知,使用tomcat的maven插件有两种配置方式:

第一种:在pom.xml文件的<build></build>中加入如下配置:

  1. <pluginManagement>  
  2.     <plugins>  
  3.         <plugin>  
  4.             <groupId>org.apache.tomcat.maven</groupId>  
  5.             <artifactId>tomcat6-maven-plugin</artifactId>  
  6.             <version>2.2</version>  
  7.         </plugin>  
  8.         <plugin>  
  9.             <groupId>org.apache.tomcat.maven</groupId>  
  10.             <artifactId>tomcat7-maven-plugin</artifactId>  
  11.             <version>2.2</version>  
  12.         </plugin>  
  13.     </plugins>  
  14. </pluginManagement>  
这种配置是针对某一个项目的,只对一个项目生效。

第二种:在maven的setting.xml文件中加入如下配置:

  1. <pluginGroups>  
  2.     <pluginGroup>org.apache.tomcat.maven</pluginGroup>  
  3. </pluginGroups>  
这种在maven插件上的配置会对所有的项目起作用。

配置好之后,就可以启动项目看效果了。

使用Maven Build启动项目,Goals那一栏填:

tomcat6:run -Dmaven.tomcat.uriEncoding=UTF-8 -Dmaven.tomcat.path=/ -Dmaven.tomcat.port=8080

或者填:

tomcat7:run -Dmaven.tomcat.uriEncoding=UTF-8 -Dmaven.tomcat.path=/ -Dmaven.tomcat.port=8080

其中,

-Dmaven.tomcat.uriEncoding=UTF-8 这个配置最好始终加上

-Dmaven.tomcat.path=/ 这个配置可以不加,默认使用/${artifactId},此处的artifactId即建pom.xml文件时写的那个artifactId,一般为项目名。如果配置为/的话,届时访问的路径就是hostname:port/,如果配置为/test的话,则访问路径是hostname:port/test,相当于namesapce的作用。

-Dmaven.tomcat.port=8080 这个配置可以设置,默认是8080

以上两种启动方式的区别仅在于使用的tomcat的版本不一样。如果使用tomcat7的话,则如果配置方式是在pom.xml文件中配置的话,则必须配置tomcat7-maven-plugin,否则会BUILD FAILURE;如果配置方式是配置maven的setting.xml文件的话,则无所谓,<pluginGroup>org.apache.tomcat.maven</pluginGroup>这一行的作用是把所有版本的maven的tomcat插件及相关插件都下载下来了。使用tomcat6的话也同理。

==================运用外部安装的tomcat运行项目,打包war至webapp=================================================

1. 安装一个完整的 tomcat-7.X
    官网下载,解压即可。要完整的主要是为了要 webapps/manager工程,因为它可以提供自动部署的接口。
2. 配置 tomcat-users.xml
    在 conf 目录下,在 tomcat-users.xml 文件中声明两个角色,并给一个用户分配这两个角色,如下:

点击(此处)折叠或打开

  1. <tomcat-users>
  2.   <role rolename="manager"/>
  3.   <role rolename="manager-gui"/>
  4.   <user username="tomcat" password="tomcat" roles="manager,manager-gui"/>
  5. </tomcat-users>
    这样 tomcat 用户才允许部署工程,也就是上传 war 包。
3. 修改工程的 pom.xml
   工程的打包类型必须是 war(<packaging>war</packaging>),不然是没法部署的。并且还需要在 pom.xml 的 build 段加下面配置:

点击(此处)折叠或打开

  1. <project>
  2.     ...
  3.     <build>
  4.         <plugins>
  5.             ....
  6.             <!-- TOMCAT热部署插件 -->
  7.             <plugin>
  8.                 <groupId>org.apache.tomcat.maven</groupId>
  9.                 <artifactId>tomcat7-maven-plugin</artifactId>
  10.                 <version>2.2</version>
  11.                 <configuration>
  12.                     <!-- 部署路径,不知道干什么用 -->
  13.                     <path>/self_help</path>
  14.                     <!-- 这个是上传工程的URL,前面IP和端口按真实的配置即可。 -->
  15.                     <url>http://localhost:8080/manager/html</url>
  16.                     <!-- 这个很重要,在下一步讲解 -->
  17.                     <server>tomcat7</server>
  18.                     <!-- 这个端口在URL里已经有了,不知道在这儿还干什么用 -->
  19.                     <port>8080</port>
  20.                 </configuration>
  21.             </plugin>
  22.         </plugins>
  23.     </build>
  24. </project>
4. 修改 maven 的配置文件 setting.xml
    上一步留了个 server 配置没讲,这里要说一下。 < server > tomcat7 < / server >
    这个server 里的值是在 setting.xml 里配置的。配置如下:

点击(此处)折叠或打开


  1.     <servers>
  2.         <server>
  3.             <id>tomcat7</id>
  4.             <username>tomcat</username>
  5.             <password>tomcat</password>
  6.         </server>
  7.     </servers>
  8. ...
那个 tomcat7 必须与这里的 id 值相同,到时maven才能找到登录用户名和密码。
5. 运行 mvn tomcat:deploy 命令即可。

我遇到的坑:
1. 打包成功,上传成功,没有一点报错,但最后在webapps中没有对应的war包。查看 manager.log 才发现,原来默认配置的上传文件大小最大为50m,我的包有100+m,所以传不上去,修改 webapps/manager/WEB-INF/web.xml中的以下段:

点击(此处)折叠或打开

  1. <servlet>
  2.     <servlet-name>Manager</servlet-name>
  3.     <servlet-class>org.apache.catalina.manager.ManagerServlet</servlet-class>
  4.     <init-param>
  5.       <param-name>debug</param-name>
  6.       <param-value>2</param-value>
  7.     </init-param>
  8.   </servlet>
  9.   <servlet>
  10.     <servlet-name>HTMLManager</servlet-name>
  11.     <servlet-class>org.apache.catalina.manager.HTMLManagerServlet</servlet-class>
  12.     <init-param>
  13.       <param-name>debug</param-name>
  14.       <param-value>2</param-value>
  15.     </init-param>
  16.     <multipart-config>
  17.       <!-- 50MB max -->
  18.       <max-file-size>52428800</max-file-size>
  19.       <max-request-size>52428800</max-request-size>
  20.       <file-size-threshold>0</file-size-threshold>
  21.     </multipart-config>
  22.   </servlet>
这里限制了上传文件大小: < max - file - size > 52428800 < / max - file - size >,修改之。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值