Maven集成Tomcat插件+远程热部署项目

本文详细介绍了Maven集成Tomcat插件的原因和作用,旨在解决开发和运行时的依赖问题以及实现远程热部署。通过配置Maven的Tomcat7-maven-plugin,可以避免本地安装多个Tomcat版本,简化项目部署流程,同时提供远程部署方案,包括配置URL、服务器、访问路径和编码等信息。此外,还列举了Maven部署Tomcat的相关命令,如deploy、redeploy等,帮助开发者更高效地管理项目部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

插件和依赖的区别:

依赖:运行时开发时都需要用到的jar包,比如项目中需要一个Json的jar包,就要添加一个依赖,这个依赖在项目运行时也需要,因此在项目打包时需要把这些依赖也打包进项目里;

插件:在项目开的发时需要,但是在项目运行后就不再需要,因此在项目开发完成后不需要把插件打包进项目中,例如接下来演示的Tomcat插件就是用来部署Web项目的,部署成功

使用Maven集成Tomcat插件的原因

常规模式使用Tomcat服务器需要本地有tomcat服务器,且如果需要适配不同版本的jdk或servlet等还需要在本地安装不同版本的Tomcat,如果使用Maven集成Tomcat则只需要在pom.xml进行配置即可使用(可用于解决:Tomcat与Servlet、JSP、JDK的版本适配问题

项目如果不是使用远程热部署的话,每次更改后都要自行将war包拷贝到服务器的wepapps下,非常不方便

使用Maven集成Tomcat插件的作用

1、解决没有对应版本Tomcat服务器的问题(本地运行)
<!-- 本地环境使用 -->
<plugin>   
  	<groupId>org.apache.tomcat.maven</groupId>   
  	<artifactId>tomcat7-maven-plugin</artifactId>   
  	<version>2.1</version>   
  	<configuration>      
    	<hostName>localhost</hostName>    <!--   默认为: localhost -->  
    	<port>8080</port>    <!-- 启动端口 Default:8080 --> 
    	<path>/api</path>    <!-- 访问应用路,默认为:/${project.artifactId}-->  
    	<uriEncoding>UTF-8</uriEncoding>
  	</configuration>
</plugin>

使用此方法可能访问servlet可能会出现500的情况,这时需要解决jar包冲突问题

2、远程热部署项目(远程部署)

在服务器的tomcat配置文件里为maven配置一个赋予权限的账号,就可以在本地使用maven命令把项目部署到正在运行的服务器的tomcat下面,即实现远程部署

操作方法
<plugins>
    <!-- tomcat插件控制 -->
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <!-- 对应运行的tomcat manager的接口-->
            <url>http://120.25.254.88:80/manager/text</url>
            <server>tomcat9</server>
            <!-- tomcat-user.xml 的 username -->
            <username>root</username>
            <!-- tomcat-user,xml 的 password -->
            <password>123456</password>
            <!-- web项目的项目名称-->
            <path>/${project.artifactId}</path>
            <uriEncoding>UTF-8</uriEncoding>
            <update>true</update>
        </configuration>
    </plugin>
    <!-- maven插件控制 -->
    <!-- 保证源程序与部署环境使用相同版本的jdk -->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          	<source>1.8</source>
          	<target>1.8</target>
        </configuration>
     </plugin> 
</plugins>

主要看一下configuration(Tomcat的配置信息)中各项代表的意义。

url

  • Tomcat7——ip:port/manager/text
  • Tomcat6——ip:port/manager/html

此处输入的url其实就是Tomcat首页中的Manager App,如下:
在这里插入图片描述

这里我们还要首先确保我们自己能够访问这个路径,浏览器会让你输入用户名和密码
在这里插入图片描述

输入的用户名密码正确且有权限即可访问到如下内容

在这里插入图片描述

而此处的账号密码需要在tomcat的conf目录下的tomcat.xml文件中进行配置,配置方式如下:

<role rolename="manager-gui"/> 
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user password="123456" username="root"
roles="manager-gui,manager-script,manager-jmx,manager-status" />

其中username即设置的用户名,password即设置的密码,访问该网站和下面配置文件中的<username>和<password>都与此处设置的相对应

server

指定tomcat名称,此处填的只是代表一个名字,而并不是tomcat的版本

tomcat的版本在此处<artifactId>tomcat7-maven-plugin</artifactId>,因为并没有找到7以上的版本,不过已验证该插件可以在tomcat9服务器上部署项目

且无论监听的服务器是tomcat7、8还是9,都是使用"mvn tomcat7:deploy"或"mvn tomcat7:redeploy"命令才执行部署

path

用于设置项目的访问路径

/代表ip+端口,${project.artifactId}表示项目名

uriEncoding

按UTF-8进行编码,解决了中文参数乱码问题

update

如果路径在tomcat服务器中已存在并且使用mvn tomcat7:deploy命令的话,上面的配置中一定要配置true,不然会报错

Maven运行tomcat的相关命令

install命令会编译出classs文件、jar文件和项目war包

deploy在install生成war包之后执行,将项目部署到目标tomcat

部署之前应先启动tomcat服务器,否则报Connection refused错误
错误信息:[ERROR]Failed to execute goal org.apache.tomcat.maven: tomcat7-maven-plugin: 2.0- SNAPSHOT: deploy (default-cli) on project helloworld: Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1]

首次部署使用"mvn tomcat7:deploy",更新项目时使用"mvn tomcat7:redeploy"

tomcat7:deploy  --部署一个web war包
tomcat7:reload  --重新加载web war包
tomcat7:start  --启动tomcat
tomcat7:stop  --停止tomcat
tomcat7:undeploy  --停止一个war包
tomcat7:run  启动嵌入式tomcat ,并运行当前项目(本地运行使用)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

得过且过的勇者y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值