Maven Jrebel 多模块热部署方案
近期在构建maven多模块项目时,发现web module依赖的其它模块,每次都要clean install成一个jar包,然后运行web module才能加载。
本生jrebel是配置在了web module主模块上,只要修改的是web模块里面的java文件都会自动reloading加载。
这个问题正在寻找解决办法。时刻会更新到这里,如果有谁有解决办法可以帮帮忙。
更新,经过多重测试,在web模块pom中增加红色字体部分,就ok了。启动的时候,会直接编译依赖模块的target/classes,就直接忽略了clean install产生的jar,
再有就是在修改依赖module项目java类的时候,jrebel会自动reloading class
2015-03-25 00:48:46 JRebel: Reloading class 'com.xx.api.data.user.service.UserProfileService'.
提示上面一句话就证明ok拉。下面是我web模块的部分配置。请参考,也可以联系我的微信:benyzhous
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.3.2</version>
- <configuration>
- <source>1.7</source>
- <target>1.7</target>
- </configuration>
- </plugin>
- <!-- 配置 maven 的 jetty 插件 -->
- <plugin>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-maven-plugin</artifactId>
- <version>7.2.2.v20101205</version>
- <configuration>
- <webAppConfig>
- <contextPath> /${project.artifactId}</contextPath>
- <!-- 指定 root context 在这里指定为${project.artifactId} 即 jetty, 那么访问时就用http://localized:8080/jetty 访问, 如果指定梶为test 就用http://localized:8080/test访问,更多信息,请查看jetty
- 插件官方文档 -->
- <span style="color:#ff0000;"><!-- 设置其他项目extraClasspath,多个用";"隔开 -->
- <extraClasspath>
- ../data-service/target/classes;
- </extraClasspath> </span>
- </webAppConfig>
- <scanTargets>
- <!-- <scanTarget>../data-service/target/classes</scanTarget> -->
- </scanTargets>
- <!-- 指定额外需要监控变化的文件或文件夹,主要用于热部署中的识别文件更新 -->
- <scanTargetPatterns>
- <scanTargetPattern>
- <directory>src</directory>
- <includes>
- <include>**/*.java</include>
- <include>**/*.properties</include>
- </includes>
- <!-- <excludes> <exclude>**/*.xml</exclude> <exclude>**/myspecial.properties</exclude> </excludes> -->
- </scanTargetPattern>
- </scanTargetPatterns>
- <scanIntervalSeconds>0</scanIntervalSeconds><!-- 指定监控的扫描时间间隔,0为关闭jetty自身的热部署,主要是为了使用jrebel -->
- <webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory><!-- 指定web页面的文件夹 -->
- </configuration>
- </plugin>
- <!-- jerebel maven 插件,用于生成jrebel.xml -->
- <plugin>
- <groupId>org.zeroturnaround</groupId>
- <artifactId>jrebel-maven-plugin</artifactId>
- <version>1.1.5</version>
- <executions>
- <execution>
- <id>generate-rebel-xml</id>
- <phase>process-resources</phase>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <rebelXmlDirectory>${basedir}/src/main/webapp/WEB-INF/classes</rebelXmlDirectory>
- <!-- 指定生成的jrebel.xml放在哪里, 要求放在web应用的 classpath下 -->
- </configuration>
- </plugin>
- </plugins>
- <outputDirectory>${basedir}/src/main/webapp/WEB-INF/classes</outputDirectory>
- <!-- 指定编译后文件的存放路径,因为jetty默认src/main/webapp为 web应用的根目录而 maven compile 目标后的默认classpath 在target文件夹下,就造成jrebel.xml无法兼顾 jetty
- 默认的是webapp中的classes为 web 应用的根目录, 而maven 默认是target 目录所以需要修改该maven的默认classes目录。 -->
Maven Jrebel 多模块热部署方案的更多相关文章
- Eclipse中使用JRebel实现项目热部署(Maven插件版)
JRebel实现项目热部署(Maven插件版) 热部署,就是在应用运行过程中不进行重启,可直接进行软件升级. 在开发过程中,热部署就是在项目运行过程中变更代码,无需重启服务器即可使代码生效. tomc ...
- [置顶] Maven多模块项目 eclipse热部署 Maven项目实现 tomcat热部署 二
最近看到有好多童鞋比较热衷热部署,特别是多模块的项目,其实这热部署如果多模块比较大资源,容易内存溢出或者电脑卡住,并不建议这么做. 不过了解下也没有关系,这里我就在说说热部署的另外一种方法,因为我之前 ...
- jrebel实现tomcat热部署
-noverify -javaagent:D:\jrebel.jar 注:频繁切换工程的时候,热部署可能会失效; 解决办法是:先把项目拖到tomcat下发布,然后在没有配置上面这行代码的情况下,让项目 ...
- maven tomcat 插件实现热部署
tomcat 的maven插件有助于提高开发效率,原因是: --可以直接把项目发布到远程的服务器上. --能够实现项目的热部署,在开发过程中修改了Java类,不需要重启tomcat 首先配置一个tom ...
- maven plugin在tomcat 热部署
前言: 此处的方法适用于tomcat6 和 tomcat7,对于最新的tomcat8还没有进行过測试,有兴趣的同学能够自己測一下. 总共分为五步: 1.在tomcat中配置用户权限,即 ...
- Jrebel简单的热部署一个web工程
前言:博主最近在做Hybris开发,漫长的启动时间大大的拖累了项目的进度,而Jrebel的出现就是为了减少项目重启的时间或者说修改了代码后直接不用重启就可以看到修改的结果,但是Hybris的部署一直没 ...
- 使用 JRebel 进行远程热部署
JRebel支持热部署,和远程热部署,本文我们来搭建一下远程热部署. 一.服务器安装 JRebel 1.官网下载最新的 JRebel 安装包,下载链接:https://zeroturnaround.c ...
- 使用Spring Loader或者Jrebel实现java 热部署
.其实JRebel和Spring-Loaded就是一个开发环境下的利器,skip build and redeploy process,大大提升了工作效率!而非生产环境的利器...因为线上reload ...
- jrebel+idea 进行热部署配置
1.安装和激活jrebel这里不在叙说 2.部署项目工程的两种方式 第一:打开项目配置project structure 配置Artificials 第二:tomcat加载项目 然后填写应用名 ...
随机推荐
- codeforces #260 DIV 2 C题Boredom(DP)
题目地址:http://codeforces.com/contest/456/problem/C 脑残了. .DP仅仅DP到了n. . 应该DP到10w+的. . 代码例如以下: #include & ...
- HTML5入门(一)
HTML简单介绍: HTML(HyperText Markup Language),超文本标记语言,是一种专门用于创建web的超文本文档编程语言,是我们看到的网页的源代码. 版本简介: 1997年推出 ...
- 前缀 树 背单词(Remember the Word,LA 3942)
已哭瞎. 搞了2个多小时的错误居然是在 没有初始化............教训:每个例子一定要考虑到初始化问题.! 每个节点存了一个数组 该数组记录的有26个大小 0-25分别表示记录表示'a' ...
- Android应用开发基础篇(13)-----GestureDetector(手势识别)
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/05/2381025.html 一.概述 GestureDetector是一个用于识别手势的类,这 ...
- 【整理】Object-C中的属性(Property)的Setter:assign,copy,retain,weak,strong之间的区别和联系
iOS编程过程中,经常看到一些属性前面有些修饰符,比如copy,retain等. 这些关键字,是Object-C语言中,对于Property的setter. Mac官网: The Objective- ...
- BZOJ 1257 余数之和sum(分块优化)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=46954 题意:f(n, k)=k mod 1 + k mod 2 ...
- C/C++指针和数组的关系
首先一个列子说明指针和数组真的不是一回事: 浅谈C中的指针和数组(一) 如果用硬是把数组和指针放在一个,一个放声明里一个放定义中,这里就能看到指针和数组名是不同的.这篇文章从符号表的角度分析一下指针和 ...
- PHP调试工具 《Kint》
Kint使用,简单介绍 是一个简单又强大的PHP调试工具. 1.kint 是什么? kint是用绝对易人识辨的方式展示PHP调试的数据. 换句话说,它可以取var_dump(),debug_blick ...
- ForeignKey.on_delete
当由一个 ForeignKey 引用的对象被删除,默认情况下,Django模拟SQL的 ON DELETE CASCADE 来删除对象的 ForeignKey 关系.这样可以覆盖指定的 on_dele ...
- photoshop自动切图
自动切图 前面的话 随着photoshop版本的不断升级,软件本身增加了很多新的功能,也为切图工作增加了很多的便利.photoshop最新的版本新增了自动切图功能,本文将详细介绍photoshop的这 ...