前提
本文使用的工程是上一篇手动部署Tomcat中的。
修改Tomcat的配置
现在要修改Tomcat目录下的apache-tomcat-8.5.24/conf/tomcat-users.xml
文件,给它加上下面的代码:
<role rolename="tomcat"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script" />
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat"
roles="manager-gui,manager-script,manager-jmx,
manager-status,admin-script,admin-gui"/>
记住这个user username="tomcat" password="tomcat"
,这个待会会用到。
修改Maven的配置
现在要修改Maven目录下的apache-maven-3.5.2/conf/settings.xml
文件,这个文件是Maven的全局配置,如果不想修改这个,估计要修改.m2
目录下的settings.xml
,这个我没有测试。给settings.xml
加上下面的代码:
<server>
<id>tomcat</id>
<!-- 这两个选项是上面Tomcat的配置 -->
<username>tomcat</username>
<password>tomcat</password>
</server>
记住这个<id>tomcat</id>
,这个待会会用到。
添加web.xml
直接把之前项目的web.xml
复制到项目路径src/main/resources
下。
配置pom.xml
在
<project>
标签下加个<packaging>war</packaging>
添加一个控制Tomcat的插件
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<url>http://localhost:8080/manager/text</url> <!-- 这个固定 -->
<server>tomcat</server> <!-- 这个是Maven配置的ID -->
<username>tomcat</username><!-- 这个是Tomcat配置的User -->
<password>tomcat</password>
<path>/${artifactId}</path> <!-- 以项目名称作为目录 -->
</configuration>
</plugin>
- 添加关于web.xml的插件
之前我没有添加这个,会报Error assembling WAR: webxml attribute is required
的错误
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>src\\main\\resources\\web.xml</webXml><!-- 修改成项目中web.xml的路径 -->
</configuration>
</plugin>
最终,pox.xml文件是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.huixi.LearnServlet</groupId>
<artifactId>LearnServlet</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>tomcat</server>
<username>tomcat</username>
<password>tomcat</password>
<path>/${artifactId}</path>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>src\\main\\resources\\web.xml</webXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
部署项目到Tomcat
先把Tomcat运行起来。
直接选择tomcat7:redeploy
即可,如果没有这个选项,选择New Goal...
添加即可,部署完毕后,在Tomcat中就可以看到项目目录了。
?
?
唯一令我不解的是,为什么会多一个LearnServlet.war
,希望有知道原因的朋友可以教我一下,谢谢啦??。