Мне удалось заставить это работать в моей среде разработки с помощью Spring Loaded агента JVM. Хотя я разрабатываю веб-приложения Spring, в описании этого проекта упоминается, что это
можно использовать с любым байт-кодом, который может работать на JVM
Используя следующую настройку, я смог получить изменения для автоматической публикации на подключенном экземпляре Tomcat (обычный метод Eclipse WTP). Я использую Spring Tool Suite 3.7.3 на основе Eclipse Mars.2 (4.5.2).
- Загрузите последнюю версию JAR Spring Loaded из их проекта Github . Это было проверено с springloaded-1.2.5.RELEASE.jar.
- Настройка сервера Tomcat в Eclipse как обычно (протестировано с Tomcat 8.0.30)
- Откройте страницу конфигурации Tomcat Server в Eclipse (дважды щелкните на экземпляре сервера на вкладке «Servers»).
- В разделе «Параметры сервера» снимите флажок «Автоматическая перезагрузка модулей по умолчанию».
- Примечание: Если у вас уже есть веб-модули, добавленные на сервер, вам может потребоваться отключить «Автоперезагрузку» на них по отдельности через вкладку «Модули» (в нижней части окна страницы конфигурации).
- В разделе «Общая информация» нажмите «Открыть конфигурацию запуска»
- На вкладке «Аргументы» в конце «Аргументы виртуальной машины» добавьте следующее:
-javaagent:/path/to/downloaded/springloaded-1.2.5.RELEASE.jar -noverify
- Чтобы включить просмотр файлов JAR в дополнение к файлам
.class
проекта, настройте аргумент -Dspringloaded=watchJars=
VM для комментариев к этой проблеме .
Запустите сервер и опубликуйте на нем проекты Dynamic Web Application как обычно. Я снова смог проверить это с помощью веб-приложений Spring. Например, изменение кода, добавление / вычитание методов и т. Д. В классах @Controller были применены практически мгновенно после того, как я сохранил файл, а Eclipse строит и публикует измененный класс. Наконец, в разделе часто задаваемых вопросов проекта Spring Loaded упоминалось несколько случаев, когда вещи не будут перезагружаться, поэтому для этого потребуется перезапуск сервера / приложения. Но эти исключения встречаются гораздо реже.
Еще одно примечание: это НЕ работает со встроенным сервером Pivotal tc или сервером VMware vFabric tc, который поставляется с STS. Для этих серверов есть опция «Включить перезагрузку на Java-агенте (экспериментальная)», но она использует более раннюю версию 1.2.0 Spring Loaded, которая у меня не работала.