Tomcat/Spring перезагрузка загрузки файлов META-INF/resources/jsp (текущие обновления)
У меня проблема с использованием jsp в экземплярах spring boot/tomcat.
В принципе, у меня есть все файлы jsp внутри модуля A (A/src/main/resources/META-INF/resources/jsp), и этот модуль включен в модуль B (основной модуль, военная упаковка) в качестве зависимости jar. Проблема в том, что приложение работает в режиме отладки (либо в Eclipse, либо в IntelliJ Idea), ни один из файлов jsp, расположенных в модуле A, не перезагружается автоматически (изменения в файле не отображаются на отображаемой веб-странице), перезапустите tomcat фактически перезагружает файлы и показывает изменения. Перегруженные файлы jsp в модуле B перезагружаются, только файлы jsp в модуле A имеют проблемы (вероятно, из-за папки META-INF/resources).
Структура модуля (зависимость, упакованная как банка):
SRC/главная/ресурсы/META-INF/ресурсы/JSP/*. JSP
Структура модуля B (основной модуль, упакованный как война, jsp здесь переопределяет те, что указаны в модуле A):
SRC/главная/веб-приложение/JSP/*. JSP
Я искал решение этого вопроса, но ближе всего я пришел к ответу: "Используя JRebel":
https://zeroturnaround.com/forums/topic/jsps-in-servlet-3-0-jars-are-not-reloading/
Кроме того, это пример того, как я настроил jsp: https://github.com/ghillert/spring-boot-jsp-demo
Ответы
Ответ 1
Я не знаю, соответствует ли это вашим ограничениям, но есть такое решение:
https://spring.io/blog/2015/06/17/devtools-in-spring-boot-1-3
Другая опция: https://github.com/spring-projects/spring-loaded
Я использую JSF и Facelets, а горячая перезагрузка всегда проблематична для веб-технологий с динамическим рендерингом. Поэтому мое предложение, помимо spring -boot-devtools, будет отделять процесс разработки статического контента от рендеринга связанного процесса. Если вам нужна только горячая перезагрузка для css, html, js-редактирования, чем большинство технологий, это поможет вам, но, если вы сделаете соответствующее редактирование компонентов, попросите вас перестроить время повторного развертывания вашего приложения. Как часто они будут спрашивать вас, что зависит от качества инструмента, который вы будете использовать.
Ответ 2
Это очень вероятно, что: fooobar.com/questions/335383/...
Все ресурсы в пути к классам относятся к кешу. Вы должны оценить ответ.
Ответ 3
Опцией может быть использование Gradle Плагин загрузки или Плагин Maven Cargo для передислокации ваших файлов на Tomcat (все файлы могут быть перераспределены, включая файлы ресурсов).
Перезагрузка файла не является автоматическим. Вы должны вручную запустить соответствующую задачу/цель, CargoRedeployLocal или груз: перераспределите для Gradle и Maven сборки соответственно.
Если перезапуск все занимает много времени, перераспределение с использованием плагина Cargo может помочь ускорить процесс.