在maven项目开发中,一般推荐使用jetty进行开发调试。但是在项目发布的时候要求使用tomcat7作为发布服务器,为此在maven中配置了tomcat7插件,以支持项目在外部tomcat7进行远程热部署。

具体配置步骤如下:

1、在服务器段安装tomcat7,并更改配置文件夹conf中tomcat-users.xml。这样用户tomcat就拥有管理员权限。

  1. <span style="font-size:14px;"><role rolename="admin-gui"/>
  2. <role rolename="admin-script"/>
  3. <role rolename="manager-gui"/>
  4. <role rolename="manager-script"/>
  5. <role rolename="manager-jmx"/>
  6. <role rolename="manager-status"/>
  7. <user name="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui" /></span>

2、在本地maven的setttings.xml文件中,属性<servers><servers>中添加如下配置

  1. <server>
  2. <id>tomcat7</id>
  3. <username>tomcat</username>
  4. <password>tomcat</password>
  5. </server>

3、在项目的pom.xml中引入tomact7-maven-plugin插件,并对插件进行配置

  1. <plugin>
  2. <groupId>org.apache.tomcat.maven</groupId>
  3. <artifactId>tomcat7-maven-plugin</artifactId>
  4. <version>2.2</version>
  5. <configuration>
  6. <!-- 注意此处的url -->
  7. <!--  <url>http://localhost:18080/manager/text</url> --><!--部署到本地tomcat7-->
  8. <url>http://ip地址:8080/manager/text</url>
  9. <server>tomcat7</server> <!-- 此处的名字必须和setting.xml中配置的ID一致 -->
  10. <path>/${projectName}</path>  <!-- 此处的名字是项目发布的工程名 -->
  11. <!--<username>tomcat</username>--><!--settings.xml文件已配置,此处可不配-->
  12. <!--<password>tomcat</password>--><!--settings.xml文件已配置,此处可不配-->
  13. </configuration>
  14. </plugin>

4、对当前项目执行mvn tomcat7:deploy命令(首次部署),或者mvn tomcat7:redeploy(再次部署),这样在远程tomcat会成功部署了该项目。(注意:部署前要确保tomcat7是启动状态)

综上所述,完成了对tomcat7远程热部署,别忘了tomcat7 的server.xml中配置URIEncoding="UTF-8"  ,以便支持中文。如下:

  1. <Connector port="8080" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="8443" URIEncoding="UTF-8" />

如果想让项目的目录成为tomcat7的根目录,让项目在启动的时候不用带上项目名称访问,如http://ip/项目名,变为http://ip 则可以在server.xml中<Host>添加<Context path="" docBase="项目名" debug="0" reloadable="true"/>。这样项目的目录成为根目录,而不是ROOT目录。

还有一种不更改server.xml配置的方式,就是在pom.xml中将<path>/${projectName}</path>改为<path>/ROOT</path>这样,项目就发布成了根目录,只不过,测试发现在远程只生成了ROOT.war没有生成ROOT文件夹。而且需要手动在manager界面启动根目录的项目。而部署到本地(localhost)没有发现这个问题。

maven tomcat7 远程热部署的更多相关文章

  1. maven实现tomcat热部署

    1.使用maven+tomcat事项热部署 1.1修改tomcat-user.xml <role rolename="manager-gui"/> <!--man ...

  2. 使用 JRebel 进行远程热部署

    JRebel支持热部署,和远程热部署,本文我们来搭建一下远程热部署. 一.服务器安装 JRebel 1.官网下载最新的 JRebel 安装包,下载链接:https://zeroturnaround.c ...

  3. maven+tomcat6-maven-plugin实现热部署及调试

    maven project,特别是maven module项目默认情况下是是无法直接通过tomcat等容器部署的,如图,我要部署fastdev_web这个maven module,可以看出在tomca ...

  4. Tomcat7的热部署

    所谓热部署就是在tomcat不停机的情况下,将新的war包放上去,达到服务不中断,用户无察觉的目的,实现的原理很简单,这里做下记录,以便后期查看. 1.1 安装tomcat7 略 1.2 在tomca ...

  5. 从零搭建SSM框架(五)Maven实现Tomcat热部署

    配置tomcat 第一步:需要修改tomcat的conf/tomcat-users.xml配置文件.添加用户名.密码.权限. <role rolename="manager-gui&q ...

  6. maven实现项目热部署

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

  7. 记录Tomcat7.x热部署配置过程

    我自己的开发版本是tomcat7.0.43+myeclipse14 原版在:http://blog.csdn.NET/chen_zw/article/details/8867779 热部署是指在你对项 ...

  8. idea maven jetty插件热部署

    maven tomcat插件好像无法进行热部署,jetty可以如下配置实现热部署,但是idea无法进行自动编译,所以需要如下快捷键 Ctrl+Shift+F9,编译 Ctrl+F9,生成项目 < ...

  9. 利用 jrebel 热部署\远程调试\远程热部署 springboot项目 服务器上的代码

    首先要在eclipse 中启用 启用以后在 resource 中生成了 rebel-remote.xml 然后build,把生成的jar包放到服务器上. 然后用下面的命令启动 java -agentp ...

随机推荐

  1. DataSet和DataTable有用的方法

    每一个DataSet都是一个或多个DataTable 对象的集合(DataTable相当于数据库中的表),这些对象由数据行(DataRow).数据列(DataColumn).字段名(Column Na ...

  2. java操作Excel之POI(3)

    一.字体处理 /** * 字体处理 */ public static void main(String[] args) throws Exception { Workbook wb = new HSS ...

  3. SpringBoot 自定义线程池

    本教程目录: 自定义线程池 配置spring默认的线程池 1. 自定义线程池 1.1 修改application.properties task.pool.corePoolSize=20 task.p ...

  4. java实验——将100-300之间的素数输出

    public class 实验1 { //将100-300之间的素数输出 /** * @param args */ public static void main(String[] args) { / ...

  5. 当vcenter是linux版本的时候Sysprep存放路径

    为 VMware vCenter Server Appliance 安装 Microsoft Sysprep 工具在从 Microsoft 网站下载并安装 Microsoft Sysprep 工具之后 ...

  6. Linux下XAMPP装完之后,Navicat无法连上数据库的问题的解决 注意'mypassword'是当前的mysql登录密码

    Linux下装完XAMPP之后,mysql是自带装好了的,这个时候,mysql的root用户没有密码. 在mac 下安装好xampp后,需要在终端命令行操作时,比如输入:mysql -u root - ...

  7. 在配置静态IP的时候遇到 :bringing up interface eth0 : error unknown connection

    首先这是动态ip配置成功的结果 接下来切换到root用户来配置静态的 按照静态ip的配置方法配置好文件后(具体过程这里就不多加说明) 然后保存退出 当我们重启网卡的时候问题来了(因为本人有点强迫症,多 ...

  8. TensorFlow相关的一些技巧

    谷歌开发技术推广工程师 Laurence Moroney 在 Google Cloud Next 大会上进行了一段 42 分钟的演讲,主题是「What's New with TensorFlow?」. ...

  9. 编写一个函数,在页面上输出一个N行M列的表格,表格内容填充0~100的随机数字

    function print(n,m){     document.write("<table>");     for(var i=0; i<n; i++){   ...

  10. 如何提取一个转录本的3'UTR区域的序列

    庐州月光 如何提取一个转录本的3'UTR区域的序列 在做microRNA 和 mRNA 相互作用预测的时候,大家都知道microRNA 作用的靶点是位于mRNA 的3'UTR取,所以只需要提取mRNA ...