Spring boot devtools и зависимые весенние проекты - PullRequest
0 голосов
/ 10 октября 2018

У меня есть крупномасштабное приложение Spring Boot, которое состоит из нескольких проектов с зависимостями между проектами.Два проекта являются «веб-приложениями» и могут выполняться в обычном порядке.Оба включают Spring devtools для возможности перезапуска / перезагрузки.Все собирается / работает нормально, за исключением функций devtools.

Проблема, с которой мы сталкиваемся, заключается в том, что после запуска одного из приложений каталог ВСЕХ приложений становится частью триггера перезагрузки - ресурсов, шаблонов., CSS, gradle.build ... касание ЛЮБОГО файла из корня подпроекта вниз запускает перезагрузку.Это делает интерфейсную разработку утомительной, если не сказать больше.

Один из проектов, называемый Project1, имеет приложение SpringBoot, которое находится в каталоге project1 / app.У него есть зависимости от project1 / core и другого проекта под названием «commons».

В начале вывода на консоль появляются следующие строки:

DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-starter/target/classes/, ...]
org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading :
file:/C:/.../project1/app/bin/, 
file:/C:/.../project1/core/bin/,
file:/C:/.../commons/bin/,
file:/C:/.../project1/app/]

Похоже, это последняя запись, котораязаставляет сканировать весь каталог project1 / app для перезапуска при любом изменении.

«Стандартный» стартовый проект с devtools показывает это для той же строки:

DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/C:/.../auto-restart/bin/]

Если я добавлюзависимость от одного из других проектов, это выглядит так:

DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/C:/.../auto-restart/bin/, file:/C:/.../commons/bin/]

, что выглядит правильно для меня - без папки верхнего уровня.

Последнее замечание: использование Eclipse, еслизапущен один из «плохо себя ведущих» проектов, значок «Trigger devtools restart» в заголовке консоли не работает.Он работает правильно для небольшого примера проекта.

Мне не удалось найти какую-либо информацию о том, как создается список ChangeableUrls или почему он может выбрать корневой каталог приложения в дополнение к / bin.Попытка изменить параметры include или exclude в application.properties не оказывает никакого влияния - весь каталог по-прежнему сканируется на наличие изменений.

Интересно, что свойство spring.devtools.restart.trigger-file НЕ останавливает сканирование всего ..... но это побеждает цель для серверной разработки.

1 Ответ

0 голосов
/ 21 мая 2019

В соответствии с этим вопросом, я бы предпочел проверить следующую конфигурацию в файле application.property или application.yml (в зависимости от настроек вашего проекта)

Если вы используете application.yml, найдите:-

spring:
  devtools:
    restart:
     additional-paths:
        - .

Если вы используете application.properties, ищите: -

spring.devtools.restart.additional-paths = .

Попробуйте найти эту конфигурацию в вашем проекте весенней загрузки, и если вы найдете такую ​​конфигурацию, попробуйтеотключите / прокомментируйте конфигурацию и затем протестируйте свое приложение.

С конфигурацией "spring.devtools.restart.additional-paths =."Spring boot позволяет перезапустить все приложение с небольшими изменениями в файле.

Вот статья, к которой вы можете обратиться за более подробной информацией: - SpringBoot Devtools

...