当前位置: 首页 > 编程笔记 >

maven tomcat plugin实现热部署

仲孙宇定
2023-03-14
本文向大家介绍maven tomcat plugin实现热部署,包括了maven tomcat plugin实现热部署的使用技巧和注意事项,需要的朋友参考一下

1、Tomcat7的用户及权限配置

要实现热部署,自然就需要通过maven操作tomcat,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限。

在tomcat的安装目录下,修改conf / tomcat-user.xml文件,在<tomcat-users>节点下面增加如下配置:

<role rolename="manager-gui" /> 
<role rolename="manager-script" /> 
<user username="tomcat" password="tomcat" roles="manager-gui, manager-script" />   

2、Maven的server的配置

在Maven的安装路径找到,修改D:\develop_tools\maven\apache-maven-3.3.9\conf \setting.xml文件 ,在<server>节点中添加tomcat7下配置的用户信息(id可以任意填写,但username和password必须和步骤1一致)

<server>  
  <id>tomcat7</id>  
  <username>tomcat</username>  
  <password>tomcat</password>  
</server> 

3、Web项目pom.xml的配置

3.1、apache官方tomcat插件的配置

tomcat7的配置:

<plugins> 
   <!-- 第一种方式: apache官方tomcat插件,支持deploy --> 
   <plugin> 
     <groupId>org.apache.tomcat.maven</groupId> 
     <artifactId>tomcat7-maven-plugin</artifactId> 
     <version>2.0-SNAPSHOT</version> 
     <configuration> 
       <url>http://localhost:8080/manager/text</url> 
       <server>tomcat7</server> 
     </configuration> 
   </plugin>  
</plugins> 

3.2 第三方tomcat插件,支持redeploy

tomcat7的配置:

<plugin> 
  <groupId>org.codehaus.mojo</groupId> 
  <artifactId>tomcat-maven-plugin</artifactId> 
  <version>1.1</version> 
  <configuration> 
    <url>http://localhost:8080/manager/text</url> 
    <server>tomcat7</server> 
    <ignorePackaging>true</ignorePackaging> 
  </configuration> 
</plugin> 

3.3 maven仓库的配置 (此为可选项):

<repository> 
  <id>people.apache.snapshots</id> 
  <url>http://repository.apache.org/content/groups/snapshots-group/</url> 
  <releases> 
    <enabled>false</enabled> 
  </releases> 
  <snapshots> 
    <enabled>true</enabled> 
  </snapshots> 
</repository> 

<pluginRepository> 
  <id>apache.snapshots</id> 
  <name>Apache Snapshots</name> 
  <url>http://repository.apache.org/content/groups/snapshots-group/</url> 
  <releases> 
    <enabled>false</enabled> 
  </releases> 
  <snapshots> 
    <enabled>true</enabled> 
  </snapshots> 
</pluginRepository> 

4、设置部署命令

一般使用搜是在eclipse中,可以右键点击需要部署的项目,Run as -> Run configurations -> maven build -> 右键 new,这样配置一个新的maven命令

具体配置命令方法:

1.在base directory中选择自己的项目
2.Goals的配置

如果使用apache的官方插件,那么就用 “tomcat7:deploy” 命令

如果使用第三方插件,那么就用 “tomcat:redeploy”命令

5、附相关错误及解决办法:

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]

原因:未启动Tomcat服务器

解决办法:先启动Tomcat服务器再选择Run

undeploy 失败

在Window系统下执行在执行 mvn tomcat7:undeploy时,会有残留在tomcat目录下

解决方法:在tomcat的配置文件context.xml中 的< Context >标签中添加属性:antiJARLocking=”true”

antiResourceLocking=”true”

<Context antiJARLocking="true" antiResourceLocking="true">

401错误

报错信息如下:

[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: Server returned HTTP response code: 401 for URL: http://localhost:8080/manager/text/deploy?path=%2Fhelloworld -> [Help 1]

原因:权限问题

解决办法在$CATALINA_BASE/conf/tomcat-users.xml,

如D:\apache-tomcat-7.0.34\conf\tomcat-users.xml文件中添加权限

<role rolename=”manager”/>
<user username=”admin” password=”admin” roles=”manager”/>

修改pom.xml文件,在<configuration> </configuration>中添加

<username>admin</username>
<password>admin</password>

403错误

报错信息如下:

[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: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Fhelloworld -> [Help 1]

原因:产生该问题有可能因为两个原因,具体参见解决办法

解决办法:

1)如果使用的是Tomcat 7,需要修改pom.xml中部署的url地址,将<url>http://localhost:8080/manager</url>改<url>http://localhost:8080/manager/text</url>

2)给tomcat用户权限分配上,需要同时具备manager-gui和manager-script权限,我在遇到该问题时,就是忘了分配manager-script权限。

正确的conf/tomcat-users.xml配置应为:

<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin” password="admin" roles="manager-gui, manager-script"/>
</tomcat-users>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍SpringBoot2.X Devtools热部署实现解析,包括了SpringBoot2.X Devtools热部署实现解析的使用技巧和注意事项,需要的朋友参考一下 pom文件引入所需jar包 springboot版本采用2.3.1 启动设置成热部署 修改代码后点击刷新即可 控制台重新打印SpringBoot图标就可以了 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多

  • 本文向大家介绍springboot实现热部署操作方法,包括了springboot实现热部署操作方法的使用技巧和注意事项,需要的朋友参考一下 1.在 Spring Boot 开发环境下禁用模板缓存 2.引入依赖 3.Intellij IEDA 和 Eclipse 不同,Intellij IDEA 必须做一些小调整 在 Eclipse 中,修改文件后要手动进行保存,它就会自动编译,就触发热部署现象,而

  • 本文向大家介绍Spring Boot实现热部署的实例方法,包括了Spring Boot实现热部署的实例方法的使用技巧和注意事项,需要的朋友参考一下 Spring Boot怎么实现热部署 在Spring Boot实现代码热部署是一件很简单的事情,代码的修改可以自动部署并重新热启动项目。 1、引用devtools依赖 这样,当修改一个java类时就会热更新。 2、自定义配置热部署 以下配置用于自定义配

  • 本文向大家介绍SpringBoot+Idea热部署实现流程解析,包括了SpringBoot+Idea热部署实现流程解析的使用技巧和注意事项,需要的朋友参考一下 idea版本 IntelliJ IDEA 2019.2.3 (Ultimate Edition) 1.pom文件加依赖 2.Ctrl+Alt+S设置 修改Compiler项 3.Ctrl+Shift+Alt+/ 选择Registry 4.勾

  • 本文向大家介绍SpringBoot如何通过devtools实现热部署,包括了SpringBoot如何通过devtools实现热部署的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了SpringBoot如何通过devtools实现热部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在项目的pom.xml文件添加如下两段 如果使用的是In

  • 本文向大家介绍SpringBoot在IDEA中实现热部署(JRebel实用版),包括了SpringBoot在IDEA中实现热部署(JRebel实用版)的使用技巧和注意事项,需要的朋友参考一下 JRebel简介: JRebel是与应用程序服务器集成的JVM Java代理,可使用现有的类加载器重新加载类。只有更改的类会重新编译并立即重新加载到正在运行的应用程序中,JRebel特别不依赖任何IDE或开发

  • 本文向大家介绍Maven添加Tomcat插件实现热部署代码实例,包括了Maven添加Tomcat插件实现热部署代码实例的使用技巧和注意事项,需要的朋友参考一下 Maven热部署,顾名思义就是可以不影响项目在服务器中的运行情况,可以实现项目代码的更新,减少启动,编译时间,达到快速开发的目的,也不需要手动拷贝war包到远程项目,可以直接将项目以及war包部署到远程服务器。 实现Maven热部署主要需要

  • 本文向大家介绍spring boot devtools在Idea中实现热部署方法,包括了spring boot devtools在Idea中实现热部署方法的使用技巧和注意事项,需要的朋友参考一下 1 pom.xml文件 注:热部署功能spring-boot-1.3开始有的 注:project 中添加 spring-boot-maven-plugin,主要在eclipse中使用,idea中不需要添加