Jrebel没有在资源中重新加载JSON文件

问题描述 投票:0回答:1

我正在开发一个Spring Multi Module Project。其中一个项目在名为drivers的文件夹中包含一些JSON文件,位于:<Project>/src/main/resources

当我第一次启动应用程序时,所有JSON文件都已正确加载,但如果我对其中一个进行更改,则JRebel继续使用旧文件。

有没有办法配置它来解决这个问题?

谢谢。

这是该项目的rebel.xml

 <?xml version="1.0" encoding="UTF-8"?>

<application generated-by="intellij" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_1.xsd">

    <classpath>
        <dir name="C:/PathToProject/target/classes">
        </dir>
        <dir name="C:/PathToProject/src/main/resources/drivers">
        </dir>
    </classpath>

    <web>
        <link target="/">
            <dir name="C:/PathToProject/src/main/webapp">
            </dir>
        </link>
    </web>

</application>
java spring jrebel
1个回答
0
投票

将类路径部分更改为

<classpath>
    <dir name="C:/PathToProject/src/main/resources/"/>
    <dir name="C:/PathToProject/target/classes"/>
</classpath>

如果应用程序正在尝试加载类路径资源,则其全名很重要(例如.drivers/myfile.json),因为这是传递给类加载器的内容。 rebel.xml必须指定类路径根的路径,而不是子文件夹。为了更好地控制,您可以使用dir条目的包含/排除。此外,路径按顺序进行检查,如果它存在于第一个路径中,即使它较旧也会返回。

因此,在您当前的配置中,JRebel将首先搜索C:/PathToProject/target/classes/drivers/myfile.json,并在IDE中最后一次运行maven-resources-plugin copy-resources目标或项目构建时找到旧版本。

现在,如果只修改了订单,则第二条路径仍然不正确,因为它会查找不存在的C:/PathToProject/src/main/resources/drivers/drivers/myfile.json

© www.soinside.com 2019 - 2024. All rights reserved.