1.安装JRebel破解版
2.在IDEA中安装JRebel Plugin
3.在项目中增加rebel.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>-->
<rebelXmlDirectory>${basedir}/src/main/resources</rebelXmlDirectory>
<!-- 指定生成的jrebel.xml放在哪里,
要求放在web应用的 classpath下 -->
</configuration>
</plugin>
4.在POM中配置JRebel的启动
<plugin>
<groupId>org.ops4j</groupId>
<artifactId>maven-pax-plugin</artifactId>
<version>1.5</version>
<configuration>
<!--
| some example Pax-Runner settings
-->
<!--<args>file://${basedir}/pax-runner-args.txt</args>-->
<provision>
<!--<param>-platform=felix</param>-->
<param>--vmOptions=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -noverify -javaagent:D:\JavaTools\Jrebel\jrebel.jar -Drebel.log=true</param>
<!--equinox-->
<param>--platform=equinox</param>
<!--<param>-clean</param>-->
<!--是否更新cache-->
<!--<param>-clean=true</param>-->
<!--<parm>-usePersistedState = false</parm>-->
<!--<parm>-workingDirectory=target/runner</parm>-->
<!--<parm>reference:file:${basedir}/tp-report/target/tp-report-1.0-SNAPSHOT</parm>-->
<!--<param>mvn:org.osgi/org.osgi.core/4.2.0@1</param>
<param>mvn:org.osgi/org.osgi.compendium/4.2.0@1</param>-->
<param>--log=debug</param>
<param>--bundleStartLevel=2</param>
<!--<param>-profiles=compendium,web,war,</param>-->
<!--Knopflerfish-->
<!--<param>-platform=kf</param>-->
</provision>
</configuration>
<executions>
<!--
| uncomment to auto-generate IDE files
<execution>
<id>ide-support</id>
<goals>
<goal>eclipse</goal>
</goals>
</execution>
-->
</executions>
</plugin>
目前,这种方式下JRebel可以检测到class的变化,但是不知道为什么,还是无法实现类的自动更新,需要在console手工输入stop BundleID以及start BundleID命令,才会更新类。
也尝试了资源文件的更新,发现资源文件无法实现自动更新。