В настоящее время я разрабатываю интерфейс/веб-приложение для встроенного сервера (упакованного в файл .jar, работающего как Tomcat) с AngularJs. На сервере есть несколько конечных точек API, которые я хочу использовать во внешнем интерфейсе.
Мой текущий подход состоит в том, чтобы использовать webjars для загрузки версии angularjs по моему выбору, а затем просто создавать приложение в папке webapp. Структура такая:
├───src
│ ├───main
│ │ ├───docker
│ │ ├───java
│ │ │ └───com
│ │ │ └───...
│ │ ├───resources
│ │ └───webapp
│ │ └───public
│ │ ├───css
│ │ └───js
│ │ └───controllers
└───target
├───classes
│ ├───com
│ │ └───...
│ └───public
│ ├───css
│ └───js
│ └───controllers
├───generated-sources
│ └───annotations
├───generated-test-sources
│ └───test-annotations
└───test-classes
└───com
└───...
Файлы, которые я редактирую, находятся внутри папки src/main/webapp/public, и они «компилируются» в папку target/classes/public. Если я хочу перезагрузить файл во время работы сервера, я должен выполнить Run -> Reload Changed Classes
, который работает достаточно хорошо во время разработки.
Но поскольку я изначально пришел из «автономной» разработки AngularJs, я привык к реальной перезагрузке и цепочке сборки, которая минимизирует и объединяет файлы js/css для оптимизации (ворчание, беседа).
Теперь я уже заглянул в wro4j и смог его настроить. Чего мне пока не хватает, так это горячей перезагрузки. Даже описанный выше подход больше не работает с wro4j, и поэтому единственным вариантом была перекомпиляция всего приложения, чтобы увидеть изменения внутри css/javascript или HTML. Есть ли простой способ обойти это?
Моим предпочтительным способом было бы работать с неминифицированной/неконкатенированной версией во время разработки (запуск сервера в режиме отладки) и выполнять всю цепочку сборки только при развертывании приложения (или просто запустить)
Каковы мои варианты?