JRebel 在OSGI环境中的使用

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命令,才会更新类。

也尝试了资源文件的更新,发现资源文件无法实现自动更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值