JRebel不检测多个webapp文件夹上的Web资源更改

时间:2015-03-05 13:56:57

标签: java jrebel

我有一个模块化的Web项目,因此我允许模块成为包含webapp文件夹的war存档。使用以下rebel.xml可以很好地检测所有模块上的类更改。但由于某些原因,当改变html或js时jrebel不会移动。

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com"
             xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">

    <classpath>
        <!-- appserver -->
        <dir name="/home/xx/data/appserver/target/classes/main"/>
        <dir name="/home/xx/data/appserver/target/resources/main"/>

        <!-- module -->
        <dir name="/home/xx/data/as.module.core/target/classes/main"/>
        <dir name="/home/xx/data/as.module.core/target/resources/main"/>

        <dir name="/home/xx/data/as.module.mqlcore/target/classes/main"/>
        <dir name="/home/xx/data/as.module.mqlcore/target/resources/main"/>
    </classpath>

    <!-- web>
        <link target="/">
            <dir name="/home/xx/data/appserver/src/main/webapp"/>
            <dir name="/home/xx/data/as.module.core/src/main/webapp"/>
            <dir name="/home/xx/data/as.module.mqlcore/src/main/webapp"/>
        </link>
    </web -->

    <web>
        <link target="/">
            <dirset dir="/home/xx/data">
                <include name="**/src/main/webapp"/>
            </dirset>
        </link>
    </web>
</application>

编辑:

有趣的事实是。当我使用Web配置的注释部分时,所有三个webapp文件夹都在日志中,并将监视更改。但是应用程序服务器找不到所有的webapp文件。当我使用第二个<web>配置时,应用程序服务器会看到所有文件,但jrebel不会观察到这些文件。我认为不可能将多个目录链接到&#34; /&#34;

2 个答案:

答案 0 :(得分:0)

每个模块(例如.war或.jar文件)都需要拥有自己的rebel.xml文件。否则所有这些都会重新加载相同的资源,当有不同的类加载器时,会发生各种奇怪的事情。

通过从jrebel.log搜索“found resource”,可以检查JRebel文件的哪个实例。它应该写成这样的东西 sun.misc.Launcher$AppClassLoader@184be29找到资源:'cfg / log4j.xml'来自'file:/ C:/Projects/testproject/Trunk/edm/target/cfg/log4j.xml'。

还可以看到哪个文件通过使用像这样的事件来添加行来改变: [IntelliJFSNotify]事件'CHANGE'开启:'C:/Projects/testproject/Trunk/edm/target/cfg/log4j.xml'

如果未重新加载文件,通常发现资源和更改的文件路径不匹配。如果匹配,则建议将文件的绝对路径和jrebel.log发送到support@zeroturnaround.com进行调查。

答案 1 :(得分:0)

好的,答案是:确实无法在<web><link target="/"></link></web>配置下配置多个目录。我现在有一个文件夹./target/all-webapp我在smylink(cp -sR)所有文件通过gradle任务...不好但是工作...感谢上帝jrebel跟随符号链接!