Что означает «обновить classpath» в Java или SpringBoot? - PullRequest
0 голосов
/ 23 марта 2019

Я читаю справочное руководство по загрузке Spring об инструментах разработчика , в котором упоминается следующее:

Поскольку DevTools отслеживает ресурсы пути к классам, единственный способзапустить перезапуск означает обновить classpath .Способ обновления пути к классу зависит от используемой среды IDE.В Eclipse сохранение измененного файла приведет к обновлению пути к классам и перезапуску. В IntelliJ IDEA создание проекта (Build → Make Project) будет иметь тот же эффект.

Я в замешательстве, что означает "обновить путь к классам"?Точнее:

  • Если я изменяю файл в моей IDE, он не обновляет путь к классу, верно ли это?
  • Если я нажимаю «Построить» в IntelliJ,похоже, он обновляет classpath, но что именно сделала среда IDE?

1 Ответ

1 голос
/ 23 марта 2019

Для ясности, classpath указывает местоположение (путь) пользовательских классов в проекте.Обычно приложение Spring Boot необходимо перезапускать вручную при изменении класса (файла), чтобы увидеть изменения в действии.

Как вы упомянули, spring-boot-devtools обеспечивает Автоматический перезапуск:

Приложения, использующие spring-boot-devtools, автоматически перезапускаются при изменении файлов в пути к классам.Это может быть полезно при работе в IDE, поскольку обеспечивает очень быструю обратную связь для изменений кода.По умолчанию любая запись в пути к классам, которая указывает на папку, отслеживается на предмет изменений.Обратите внимание, что определенные ресурсы, такие как статические ресурсы и шаблоны представлений, не должны перезапускать приложение.

Поскольку DevTools отслеживает ресурсы пути к классам, единственный способ инициировать перезапуск - обновить путь к классам.Способ обновления пути к классу зависит от используемой среды IDE.В Eclipse сохранение измененного файла приводит к обновлению пути к классам и запускает перезапуск.В IntelliJ IDEA создание проекта (Build -> Build Project) имеет тот же эффект.

Это означает, что при IntelliJ при создании проекта (и, таким образом, обновлении пути к классам) инструменты разработки будутвызвать перезапуск приложения.Более просто, можно также настроить IntelliJ на автоматическую сборку и активировать compiler.automake.allow.when.app.running ( вот как ).

...