zoukankan      html  css  js  c++  java
  • 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目录。 -->


  • 相关阅读:
    366. Find Leaves of Binary Tree输出层数相同的叶子节点
    716. Max Stack实现一个最大stack
    515. Find Largest Value in Each Tree Row查找一行中的最大值
    364. Nested List Weight Sum II 大小反向的括号加权求和
    156. Binary Tree Upside Down反转二叉树
    698. Partition to K Equal Sum Subsets 数组分成和相同的k组
    244. Shortest Word Distance II 实现数组中的最短距离单词
    187. Repeated DNA Sequences重复的DNA子串序列
    java之hibernate之基于主键的双向一对一关联映射
    java之hibernate之基于主键的单向一对一关联映射
  • 原文地址:https://www.cnblogs.com/duyinqiang/p/5696757.html
Copyright © 2011-2022 走看看