分享

Maven Jrebel 多模块热部署方案

 feimishiwo 2015-06-17

近期在构建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

  1. <plugins>  
  2.     <plugin>  
  3.         <groupId>org.apache.maven.plugins</groupId>  
  4.         <artifactId>maven-compiler-plugin</artifactId>  
  5.         <version>2.3.2</version>  
  6.         <configuration>  
  7.             <source>1.7</source>  
  8.             <target>1.7</target>  
  9.         </configuration>  
  10.     </plugin>  
  11.     <!-- 配置 maven 的 jetty 插件 -->  
  12.     <plugin>  
  13.         <groupId>org.mortbay.jetty</groupId>  
  14.         <artifactId>jetty-maven-plugin</artifactId>  
  15.         <version>7.2.2.v20101205</version>  
  16.         <configuration>  
  17.             <webAppConfig>  
  18.                 <contextPath> /${project.artifactId}</contextPath>  
  19.                 <!-- 指定 root context 在这里指定为${project.artifactId} 即 jetty, 那么访问时就用http://localized:8080/jetty 访问, 如果指定梶为test 就用http://localized:8080/test访问,更多信息,请查看jetty   
  20.                     插件官方文档 -->  
  21.                 <span style="color:#ff0000;"><!-- 设置其他项目extraClasspath,多个用";"隔开 -->  
  22.                 <extraClasspath>  
  23.                 ../data-service/target/classes;  
  24.                 </extraClasspath> </span>  
  25.             </webAppConfig>  
  26.   
  27.             <scanTargets>  
  28.                 <!-- <scanTarget>../data-service/target/classes</scanTarget> -->  
  29.             </scanTargets>  
  30.   
  31.             <!-- 指定额外需要监控变化的文件或文件夹,主要用于热部署中的识别文件更新 -->  
  32.             <scanTargetPatterns>  
  33.                 <scanTargetPattern>  
  34.                     <directory>src</directory>  
  35.                     <includes>  
  36.                         <include>**/*.java</include>  
  37.                         <include>**/*.properties</include>  
  38.                     </includes>  
  39.                     <!-- <excludes> <exclude>**/*.xml</exclude> <exclude>**/myspecial.properties</exclude> </excludes> -->  
  40.                 </scanTargetPattern>  
  41.             </scanTargetPatterns>  
  42.             <scanIntervalSeconds>0</scanIntervalSeconds><!-- 指定监控的扫描时间间隔,0为关闭jetty自身的热部署,主要是为了使用jrebel -->  
  43.             <webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory><!-- 指定web页面的文件夹 -->  
  44.         </configuration>  
  45.     </plugin>  
  46.   
  47.     <!-- jerebel maven 插件,用于生成jrebel.xml -->  
  48.     <plugin>  
  49.         <groupId>org.zeroturnaround</groupId>  
  50.         <artifactId>jrebel-maven-plugin</artifactId>  
  51.         <version>1.1.5</version>  
  52.         <executions>  
  53.             <execution>  
  54.                 <id>generate-rebel-xml</id>  
  55.                 <phase>process-resources</phase>  
  56.                 <goals>  
  57.                     <goal>generate</goal>  
  58.                 </goals>  
  59.             </execution>  
  60.         </executions>  
  61.         <configuration>  
  62.             <rebelXmlDirectory>${basedir}/src/main/webapp/WEB-INF/classes</rebelXmlDirectory>  
  63.             <!-- 指定生成的jrebel.xml放在哪里, 要求放在web应用的 classpath下 -->  
  64.         </configuration>  
  65.     </plugin>  
  66. </plugins>  
  67. <outputDirectory>${basedir}/src/main/webapp/WEB-INF/classes</outputDirectory>  
  68. <!-- 指定编译后文件的存放路径,因为jetty默认src/main/webapp为 web应用的根目录而 maven compile 目标后的默认classpath 在target文件夹下,就造成jrebel.xml无法兼顾 jetty   
  69.     默认的是webapp中的classes为 web 应用的根目录, 而maven 默认是target 目录所以需要修改该maven的默认classes目录。 -->  


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多