Maven热部署,顾名思义就是可以不影响项目在服务器中的运行情况,可以实现项目代码的更新,减少启动,编译时间,达到快速开发的目的,也不需要手动拷贝war包到远程项目,可以直接将项目以及war包部署到远程服务器。 实现Maven热部署主要需要maven获得tomcat的管理权限,首先要进行Tomcat的配置,其次在pom.xml中配置tomcat插件即可实现maven热部署。

配置Tomcat权限

在tomcat文件目录下找到apache-tomcat-7.0.68/conf/tomcat-users.xml文件,在文中位置加入以下角色(非注释部分)配置:

<tomcat-users>
<!--
NOTE: By default, no user is included in the "manager-gui" role required
to operate the "/manager/html" web application. If you wish to use this app,
you must define such a user - the username and password are arbitrary.
-->
<!--
NOTE: The sample user and role entries below are wrapped in a comment
and thus are ignored when reading this file. Do not forget to remove
<!.. ..> that surrounds them.
-->
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
<role rolename="manager-gui" />
<role rolename="manager-script" />
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script" />
</tomcat-users>

配置说明

  • manager-gui:允许访问html接口(即URL路径为/manager/html/)
  • manager-script:允许访问纯文本接口(即URL路径为/manager/text/)
  • manager-jmx:允许访问JMX代理接口(即URL路径为/manager/jmxproxy/)
  • manager-status:允许访问Tomcat只读状态页面(即URL路径为/manager/status/)

从Tomcat Manager内部配置文件中可以得知,manager-gui、manager-script、manager-jmx均具备manager-status的权限,也就是说,manager-gui、manager-script、manager-jmx三种角色权限无需再额外添加manager-status权限,即可直接访问路径"/manager/status/*"

maven配置

<server>
<id>tomcat7</id> <!--Id名称可以随便写-->
<username>tomcat</username> <!--用户名与tomcat配置中username相同-->
<password>tomcat</password> <!--密码与tomcat配置中password相同-->
</server>

pom.xml引入tomcat7插件

maven中关于tomcat的插件有tomcat6插件和tomcat7插件,普遍使用的是tomcat7插件,在pom.xml中添加以下片段:

<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!--要部署的远程服务器地址 ip端口,后面/manager/text为tomcat管理项目的路径不能改变-->
<url>http://localhost:8080/manager/text</url>
<!--maven setting.xml中配置的serverID名称-->
<server>tomcat7</server>
<!--项目要部署的路径 /表示根路径 默认Root-->
<path>/</path>
<!--项目是否更新 默认true 可不配置-->
<update>true</update>
<!--maven setting.xml以及tomcat tomcat-users.xml 中配置的用户名密码-->
<username>tomcat</username>
<password>tomcat</password>
</configuration>
</plugin>
<!--以下配置不是必须,为了保证编译版本,tomcat7插件默认支持的JDK1.7-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>

配置完成,接下来运行run as maven build,然后在Goals中填上tomcat7:deploy运行项目,实现maven热部署了,看到以下信息提示,就表示执行成功了。

[INFO] tomcatManager status code:200, ReasonPhrase:OK
[INFO] OK - Deployed application at context path /
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.560 s
[INFO] Finished at: 2019-04-18T20:37:57+08:00
[INFO] Final Memory: 21M/222M
[INFO] ------------------------------------------------------------------------

注意事项:

  • 部署项目前要先启动tomcat服务器
  • 在执行tomcat7:deploy命令时注意jre版本的配置,JDK版本选择1.7
  • 首次执行选择第一个maven build,非首次执行选择第二个maven build 命令执行tomcat7:redeploy

maven集成tomcat常用命令:

tomcat:deploy 部署一个web war包
tomcat:reload 重新加载web war包
tomcat:start 启动
tomcat tomcat:stop 停止
tomcat tomcat:undeploy 停止一个war包
tomcat:run 启动嵌入式tomcat ,并运行当前项目

本文参考:https://www.cnblogs.com/luchangyou/p/7573481.html

Maven添加Tomcat插件实现热部署的更多相关文章

  1. maven tomcat 插件实现热部署

    tomcat 的maven插件有助于提高开发效率,原因是: --可以直接把项目发布到远程的服务器上. --能够实现项目的热部署,在开发过程中修改了Java类,不需要重启tomcat 首先配置一个tom ...

  2. IDEA使用Maven+Tomcat插件实现热部署

    1 配置tomcat pom.xml <!-- tomcat7启动插件 --> <plugin> <groupId>org.apache.tomcat.maven& ...

  3. Maven 添加 Tomcat 插件

    若想在 Maven 中使用 Tomcat 服务器,需要在 pom.xml 文件中的 <build></build> 标签中添加以下代码 <!-- Maven项目编译插件 ...

  4. [置顶] Maven多模块项目 eclipse热部署 Maven项目实现 tomcat热部署 二

    最近看到有好多童鞋比较热衷热部署,特别是多模块的项目,其实这热部署如果多模块比较大资源,容易内存溢出或者电脑卡住,并不建议这么做. 不过了解下也没有关系,这里我就在说说热部署的另外一种方法,因为我之前 ...

  5. Maven集成Tomcat插件

    目录 类似插件及版本区别: 本地运行,启动嵌入式tomcat: 错误一: 错误二: Idea运行调试: vscode运行调试: 远程部署: 项目中的pom.xml配置: Tomcat中的tomcat- ...

  6. Jetty插件实现热部署(开发时修改文件自动重启Jetty)

    在pom.xml文件中配置Jetty插件的参数:scanIntervalSeconds <plugin> <groupId>org.mortbay.jetty</grou ...

  7. IntelliJ13+tomcat+jrebel实现热部署(亲测可用)

       网上有很多介绍intellij idea整合jrebel插件实现热部署的文章,但是有的比较复杂,有的不能成功,最后经过各种尝试,实现了整合,亲测可用!步骤说明如下:   一.先下载jrebel安 ...

  8. maven 使用tomcat插件 自动化部署war

    1.相关环境变量 idea tomcat8 maven3 2.增加tomcat user, 修改 $CATALINA_HOME/conf/tomcat-users.xml <tomcat-use ...

  9. 为Gradle添加tomcat插件,调试WEB应用

    Gradle提供了不输于maven的依赖管理 提供了强大的test功能,输出优美的测试报告 并且提供war插件,使用内置的jetty调试WEB应用 因为博主偏偏钟情于tomcat,所以希望使用tomc ...

随机推荐

  1. AttributeError: 'Word2Vec' object has no attribute 'vocab'

    在 Gensim 1.0.0 版本后移除了 vocab,需使用 model.wv.vocab

  2. 敏捷团队协作:Confluence简易教程

      0.Confluence简介 Confluence是一个企业级的Wiki软件,可用于在企业.部门.团队内部进行信息共享和协同编辑. 1.基础概念 Confluence的使用并不复杂,只需掌握如下几 ...

  3. Linux centos7 rsync工具介绍、rsync常用选项、rsync通过ssh同步

    一.rsync工具介绍 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync ...

  4. CSS垂直居中的8种方法

    CSS垂直居中的8种方法 1.通过verticle-align:middle实现CSS垂直居中. 通过vertical-align:middle实现CSS垂直居中是最常使用的方法,但是有一点需要格外注 ...

  5. redhat 7.6 安装 inotify-tools 文件监控工具 搭配rsync

    1.解压inotify-tools tar -zxvpf inotify-tools-3.14.tar.gz 2.cd 到解压的目录 3../configure  编译,然后失败,提示checking ...

  6. Day11 - K - Good Luck in CET-4 Everybody! HDU - 1847

    大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此.当然,作为在考场浸润了十几载的当代大学生,Kiki和Cici更懂得考 ...

  7. 神奇的navigationBar.translucent

    初步实践所得: 当translucent属性为YES的时候,vc的view的坐标从导航栏的左上角开始: 当translucent属性为NO的时候,vc的view的坐标从导航栏的左下角开始:   深入探 ...

  8. Linux系统监控 zabbix-agent 主机添加的操作页面

    #!/bin/bash#设置解析#安装zabbix源.aliyun YUM源# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zab ...

  9. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:水平表单

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. JS监听手机物理返回键,返回到指定页面

    pushHistory(); window.addEventListener("popstate", function(e) { window.location = data.in ...