================运用插件内部tomcat直接运行==========================================
去tomcat官网http://tomcat.apache.org/,左侧栏Apache Tomcat下的Maven Plugin,点进去选择最新版本Version 2.2
通过介绍可知,使用tomcat的maven插件有两种配置方式:
第一种:在pom.xml文件的<build></build>中加入如下配置:
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.tomcat.maven</groupId>
- <artifactId>tomcat6-maven-plugin</artifactId>
- <version>2.2</version>
- </plugin>
- <plugin>
- <groupId>org.apache.tomcat.maven</groupId>
- <artifactId>tomcat7-maven-plugin</artifactId>
- <version>2.2</version>
- </plugin>
- </plugins>
- </pluginManagement>
第二种:在maven的setting.xml文件中加入如下配置:
- <pluginGroups>
- <pluginGroup>org.apache.tomcat.maven</pluginGroup>
- </pluginGroups>
配置好之后,就可以启动项目看效果了。
使用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 文件中声明两个角色,并给一个用户分配这两个角色,如下:
点击(此处)折叠或打开
- <tomcat-users>
- <role rolename="manager"/>
- <role rolename="manager-gui"/>
- <user username="tomcat" password="tomcat" roles="manager,manager-gui"/>
- </tomcat-users>
3. 修改工程的 pom.xml
工程的打包类型必须是 war(<packaging>war</packaging>),不然是没法部署的。并且还需要在 pom.xml 的 build 段加下面配置:
点击(此处)折叠或打开
- <project>
- ...
- <build>
- <plugins>
- ....
- <!-- TOMCAT热部署插件 -->
- <plugin>
- <groupId>org.apache.tomcat.maven</groupId>
- <artifactId>tomcat7-maven-plugin</artifactId>
- <version>2.2</version>
- <configuration>
- <!-- 部署路径,不知道干什么用 -->
- <path>/self_help</path>
- <!-- 这个是上传工程的URL,前面IP和端口按真实的配置即可。 -->
- <url>http://localhost:8080/manager/html</url>
- <!-- 这个很重要,在下一步讲解 -->
- <server>tomcat7</server>
- <!-- 这个端口在URL里已经有了,不知道在这儿还干什么用 -->
- <port>8080</port>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </project>
上一步留了个 server 配置没讲,这里要说一下。 < server > tomcat7 < / server >
这个server 里的值是在 setting.xml 里配置的。配置如下:
点击(此处)折叠或打开
- <servers>
- <server>
- <id>tomcat7</id>
- <username>tomcat</username>
- <password>tomcat</password>
- </server>
- </servers>
- ...
5. 运行 mvn tomcat:deploy 命令即可。
我遇到的坑:
1. 打包成功,上传成功,没有一点报错,但最后在webapps中没有对应的war包。查看 manager.log 才发现,原来默认配置的上传文件大小最大为50m,我的包有100+m,所以传不上去,修改 webapps/manager/WEB-INF/web.xml中的以下段:
点击(此处)折叠或打开
- <servlet>
- <servlet-name>Manager</servlet-name>
- <servlet-class>org.apache.catalina.manager.ManagerServlet</servlet-class>
- <init-param>
- <param-name>debug</param-name>
- <param-value>2</param-value>
- </init-param>
- </servlet>
- <servlet>
- <servlet-name>HTMLManager</servlet-name>
- <servlet-class>org.apache.catalina.manager.HTMLManagerServlet</servlet-class>
- <init-param>
- <param-name>debug</param-name>
- <param-value>2</param-value>
- </init-param>
- <multipart-config>
- <!-- 50MB max -->
- <max-file-size>52428800</max-file-size>
- <max-request-size>52428800</max-request-size>
- <file-size-threshold>0</file-size-threshold>
- </multipart-config>
- </servlet>