Как горячая перезагрузка сервера Tomcat в VSCode

Я перехожу из Eclipse IDE (+ VSCode для кодирования Java-сервлетов и веб-страниц HTML/CSS/JS, соответственно) только в код Visual Studio для его легкого веса.


У меня установлено несколько расширений Java для VSCode:


Eclipse имеет ряд настроек для горячей перезагрузки:

- Automatically publish when resources change
- Refresh using native hooks or polling

в то время как VSCode, кажется, не имеет для меня.


Несколько вещей, которые я пытаюсь перезагрузить мой Java и веб-код:

  • Перезагрузите сервер Tomcat
  • Удалить и повторно добавить сервер Tomcat
  • Удалите и регенерируйте пакет .war (не уверен, что это что-то делает, он может работать без пакета .war)

Ответ 1

Хорошие новости...

Теперь работает автоматически. С Tomcat для расширения Java (и остальной частью пакета расширения Java): https://marketplace.visualstudio.com/items?itemName=adashen.vscode-tomcat

Просто убедитесь, что ваши настройки такие (ищите "java.autobuild", чтобы получить эти два в первых результатах): enter image description here

Очень важно, что вы не увидите никаких журналов в консоли на HCR (горячая замена кода), как это происходит в Eclipse... но вы на самом деле увидите поведение замененного кода. Просто отладьте фрагмент кода, который вы изменили, и вы увидите, что он действительно изменился на работающем сервере.

ОБНОВЛЕНИЕ: Я обнаружил, что он работает лучше с настройкой "вручную" (по умолчанию). Просто нажмите один раз на значок молнии. (Тестирование в Ubuntu 18.04 LTS) [Я говорю, что это работает лучше, потому что, если я добавлю строки в код Class с настройкой 'auto', он не будет добавлять этот код... только если я изменю код в существующих строках. Но с ручной настройкой я просто сохраняю файл, а затем нажимаю значок молнии, подожду ~ 3 секунды и отлаживаю новый код... и все идет хорошо !! enter image description here

... Это решает мои потребности в кодировании (облегченный редактор /IDE с горячей заменой кода в Tomcat)]

Наслаждайтесь !

Ответ 3

Эта статья может быть полезна, я перехожу с другой IDE на Vscode. Согласно статье, если вы устанавливаете Debugger for Java, включается горячая замена кода (HCR), а затем:

Вы можете начать сеанс отладки и изменить файл Java в своей среде разработки, и отладчик заменит код в JVM, выполняющей ваш код.

Горячая замена кода для Java приходит в Visual Studio Code

Ответ 4

Установите расширение "Tomcat для Java" в VScode.

Настройте Путь Tomcat в вышеуказанном расширении.

Теперь вы сможете запускать tomcat в обычном режиме build → deploy. Теперь установите DCEVM, используя "java -jar installer-light.jar". (Выберите "Установить DCEVM как altjvm")

Поместите HotSwap Agent Jar в каталог по вашему выбору.

Теперь в VScode щелкните правой кнопкой мыши созданный вами сервер Tomcat. (Один из шага 3) И выберите "Настройка параметров JVM".

В открывшемся файле поместите "-XXaltjvm = dcevm -javaagent:/[your_directory]/hotswap-agent-1.3.1-SNAPSHOT.jar" Теперь щелкните правой кнопкой мыши по серверу Tomcat в VScode и выберите "Debug WAR package" И выберите файл WAR.

Если все идет хорошо, WAR запускается в TOMCAT в режиме отладки с текстом "HOTSWAP AGENT" в журнале.

Теперь каждое ваше сохранение в вашем файле будет запускать горячую перезагрузку.

https://medium.com/@manoj_makkuboy/hot-reload-java-8-tomcat-server-in-vscode-ba6233d632e?