在使用maven多模块的结构的时候,同时有多个web工程使用maven-war-plugin的overlay来组织的时候,本地开发时如何在eclipse里面启动容器并且可以热部署调试是个比较麻烦的问题,之前一直使用maven-tomcat-plugin,

不可否认tomcat是最快的,而且也是最方便的,但是有一个问题一直无解,就是overlay支持不好,比如webA有一个a.jsp,webB有一个b.jsp,如果在webB依赖webA,使用overlay打包没有问题,可以把a.jsp和b.jsp全部打到war包里面,但是用tomcat运行webB的时候,a.jsp访问不到。这非常的不方便。tomcat的好处是,修改jsp直接生效,修改类文件会自动重新热部署,比较快。

使用jetty能解决overlay的问题,但是jetty的缺点是启动慢,因为每一次热部署都会在target/tmp下重新部署一份,如果你jar比较多,拷贝就要一定的时间。

但是jetty能很好的支持overlay,下面介绍一下使用jetty配置的几种情况

普通运行模式:
1. 配置手动reload
<scanTargets>

<scanTarget>../childModule/target/classes</scanTarget>

</scanTargets>

<scanIntervalSeconds>0</scanIntervalSeconds>

<reload>manual</reload>

这样配置后每次修改完需要手动输入reload,然后jetty会重新部署

如果修改了childModule里面的类,你会发现不起作用,需要install一下,再reload就起作用了。

2. 配置自动reload
<scanTargets>

  <scanTarget>../childModule/target/classes</scanTarget>

</scanTargets>
<scanIntervalSeconds>5</scanIntervalSeconds>

这样每次修改childModule里面的类,会自动reload,但是你会发现修改还是不起作用,仍然需要install一下childModule.

3. 配置手动reload, 不配置scanTargets
<scanIntervalSeconds>0</scanIntervalSeconds>
<reload>manual</reload>
这样每次修改childModule后,手动install一下,再reload一下,也是一样起作用的

3. 无论怎么配置,如果是修改web工程下的类或者jsp,会马上起作用。

Debug模式:
1. 配置手动reload
修改类文件后马上生效,不需reload,如果reload了反而不生效,如果是overlay的web工程里面的jsp,则不行,一定要重新install+reload

2. 配置自动reload
修改类文件后会reload,修改不会生效,需要install后再reload才生效,可能是因为reload后又等于是重新加载了jar包,而jar包还是旧的

总结:开发时使用debug模式,或者普通模式+手动reload最好,scanTargets感觉没什么用

在maven多模块结构中,并且使用overlay的情况下使用jetty热部署的更多相关文章

  1. epiinfo是美国CDC开发维护的流行病学数据录入和分析软件,在DOS时代占主流,随着Windows的普及用的人越来越少了,epiinfo重新开发Windows版本后,体积庞大且不好用。在数据录入方面已被EpiData取代,不过epiinfo的分析模块,比如地理信息系统某些情况下还是挺有用的。

    Manual: https://www.cdc.gov/epiinfo/support/userguide.html https://en.wikipedia.org/wiki/Epi_Info 教程 ...

  2. maven父子模块deploy 问题

    1.问题描述:直接 deploy 子某块,但第三者确不能引用 jar(jar down不下来,但pom不报错) 原因:父子模块项目必须保证父模块pom deploy后,再 deploy 子模块才能被引 ...

  3. eclipse tomcat maven热部署

    1.  tomcat插件 如果是Kepler的话,已经自带了tomcat插件,如果没有,到http://www.eclipsetotale.com/tomcatPlugin.html下载安装或在线安装 ...

  4. nginx使用热部署添加新模块

    简介 当初次编译安装nginx时,http_ssl_module 模块默认是不编译进nginx的二进制文件当中,如果需要添加 ssl 证书.也就是使用 https协议.那么则需要添加 http_ssl ...

  5. maven多模块项目,多web合并项目使用心得

    Fixflow,做中国最好的开源流程引擎!项目地址https://github.com/fixteam/fixflow 此文章适合maven初学者或想接触maven的用户,讲的只是皮毛,高手请自觉略过 ...

  6. Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题

    现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...

  7. [转]Maven 划分模块

    所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml.它们之间通过继承和聚合(也称作多模块,multi-module)相互关联.那么,为什么要这么做呢?我们明明在开发一 ...

  8. IntelliJ Idea14 创建Maven多模块项目

    Maven多模块项目的参考资料 Sonatype上的教程 http://books.sonatype.com/mvnex-book/reference/multimodule.html 在这个教程里, ...

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

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

随机推荐

  1. C++ 静态对象

    一:什么是静态对象?     对象的存储方式是静态的.        局部静态对象和类的静态对象.      局部静态对象:一个变量在函数内部定义,其生命周期跨越了该函数的多次调用.局部对象确保不迟于 ...

  2. [转]C#设计模式(8)-Builder Pattern

    一. 建造者(Builder)模式 建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象. 对象性质的建造 有些情况下,一个对象会有一些重 ...

  3. php冒泡算法

    1.冒泡算法 网上搜了很多,但是总是对于每次循环的边界值思路讲的比较笼统. 不是很容易被新手记住,我自己平时也是硬记下来的. 但是对于算法,硬记,时间长了还是容易忘记,所以自己写了一次,把每次思路尽量 ...

  4. 基于宜搭的《T恤尺码收集》应用搭建

    简介: 在阿里,T恤是程序员必不可少的元素.每逢公司或者BU(部门)的重大节庆日,比如双11 .年会.新BU成立仪式.大型活动等,都会给员工定制发放统一的T恤或者POLO衫服装.而我们每次发放T恤之前 ...

  5. Windows 下 MQTT 服务器搭建之Apollo

    https://blog.csdn.net/wangh0802/article/details/84861226#%EF%BC%881%EF%BC%89%E4%B8%8B%E8%BD%BD%20Apo ...

  6. utils02_使用github创建一个远程仓库

    1.注册github账号 https://github.com/ 2.第一次登陆需要创建一个仓库 3.在本地生成密钥和公钥 ssh-keygen -t rsa 会在当前用户下生成2个文件就是公钥和密钥 ...

  7. 2018-8-10-WPF-使用不安全代码快速从数组转-WriteableBitmap

    title author date CreateTime categories WPF 使用不安全代码快速从数组转 WriteableBitmap lindexi 2018-08-10 19:16:5 ...

  8. 1858: [Scoi2010]序列操作

    1858: [Scoi2010]序列操作 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 3397 Solved: 1624 [Submit][Statu ...

  9. light7结合jquery实现开关按钮

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

  10. iFrame 父子窗口通讯

    今天就来说说 iFrame 的父子窗口通讯,关于 iFrame 这里就不陈述了,想要了解的盆友可以百度一下, 由于项目需要,前些天用到了个弹框框架 layer 弹出层,有很多弹出的方式,其中一种就是用 ...