Jrebel не перезагружает файл JSON в ресурсах - PullRequest
0 голосов
/ 04 апреля 2019

Я работаю над Spring Multi Module Project. Один из проектов содержит файл JSON в папке с именем drivers, расположенной в: <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>

1 Ответ

0 голосов
/ 04 апреля 2019

Измените часть пути к классам на

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

Если приложение пытается загрузить ресурс classpath, его полное имя важно (например, drivers/myfile.json), так как это то, что передается загрузчику классов. Файл rebel.xml должен указывать пути, являющиеся корнями пути к классам, а не подпапками. Для более точного контроля вы можете использовать include / exclude для записи dir. Кроме того, пути проверяются по порядку, и если он существует в первом, он возвращается, даже если он старше.

Так что в вашей текущей конфигурации JRebel будет сначала искать C:/PathToProject/target/classes/drivers/myfile.json и найдите старую версию из последнего запуска цели копирования-ресурсов maven-resources-plugin или сборки проекта в IDE.

Теперь, если был исправлен только порядок, второй путь все еще неверен, поскольку он будет искать C:/PathToProject/src/main/resources/drivers/drivers/myfile.json там, где его нет.

...