美文网首页
[java]33、Maven部署tomcat

[java]33、Maven部署tomcat

作者: 史记_d5da | 来源:发表于2022-04-04 17:16 被阅读0次

前面讲过关于如何使用IDEA创建一个webapp项目。我们都知道,用IDEA创建的webapp项目使用本地tomcat运行时,tomcat会在本地创建一个临时的项目名称.xml文件,例如:
/Users/a1708/Library/Caches/JetBrains/IntelliJIdea2021.3/tomcat/6cd22393-1b0b-46c2-88f9-ee09cfb4a1ab/conf/Catalina/localhost/projectname.xml
xml文件中记录了项目打包路径,tomcat会根据路径名加载对应的项目资源。
但是使用maven创建的webapp项目,并部署tomcat的操作步骤和原理会有所不同;


1、Maven部署tomcat

1、使用maven创建一个空的项目WebApp_11
2、在pom.xml中配置打包方式<packaging>war</packaging>,指定为webapp项目
3、在Module中点击选中WebApp_11,点击Web图标。在右边Deployment Descripts栏中点击+号,并选中1 web.xml文件。

web.xml
4、在弹框中修web.xml的文件路径,在/WEB-INF/web.xml前面添加src/main/webapp,点击确认。
web.xml路径
5、在pom.xml中添加tomcat7,在Maven栏目下面Plugins中显示tomcat7目标文件
<build>
       <plugins>
           <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
         </plugin>
      </plugins>
</build>
tomcat7goal
6、在pom.xml文件中添加java.servlet依赖,(注意:此时需要在运行时依赖,java.servlet,因此需要设置scope为provided)
<dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
</dependencies>

7、在webapp文件加中创建index.jsp文件
8、双击tomcat7:run可以启动tomcat,在启动日志中找到http://localhost:8080/WebApp_11,在浏览器中输入回车。

2、tomcat7插件部署到tomcat9

1、在本地mavensetting.xml文件中添加如下,用于登录本地tomcat的用户名密码

<servers>
    <server>
      <id>tomcat9</id><!-- 随便起-->
      <username>root</username>
      <password>root</password>
    </server>
</servers>

2、在本地tomcat9tomcat-users.xml文件中添加如下,配置tomcat用户名和密码

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <user username="root" password="root" roles="manager-gui,manager-script"/>
</tomcat-users>

3、在maven项目的pom.xml文件中配置如下

<plugins>
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <!--  部署到本地tomcat9的项目名称(war包名称)-->
            <path>/context_path</path>
            <!--  支持热部署-->
            <update>true</update>
            <url>http://localhost:8080/manager/text</url>
            <!--  解决get请求中文乱码问题-->
            <uriEncoding>UTF-8</uriEncoding>
            <!-- get请求参数中的编码方式-->
            <server>tomcat9</server>
        </configuration>
    </plugin>
    <!--            打包是web应用-->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.0</version>
    </plugin>
</plugins>

4、cd到当前的tomcat9/bin目录下启动tomcat9,并且在IdeaMaven栏下的Plugins/tomcat7插件中双击tomcat7:deploy

tomcat7:deploy
5、在控制台输出的http://localhost:8080/context_path为项目的url,在浏览器中输入url可正确访问地址。
6、解决tomcat7打包乱码问题,需要在pom.xml中添加如下配置
<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

相关文章

网友评论

      本文标题:[java]33、Maven部署tomcat

      本文链接:https://www.haomeiwen.com/subject/csmzjrtx.html