美文网首页
[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