Мені вдалося змусити це працювати над своїм середовищем розробки за допомогою агента Spring Loaded JVM. Поки я розробляю веб-додатки Spring, в описі цього проекту згадується, що він є
можна використовувати на будь-якому байт-коді, який може працювати на JVM
Використовуючи наступні налаштування, я зміг автоматично опублікувати зміни у підключеному екземплярі Tomcat (звичайний метод WTP Eclipse). Я використовую 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 в Eclipse (двічі клацніть на екземплярі сервера на вкладці "Сервери").
- У розділі "Параметри сервера" зніміть прапорець біля пункту "Автоматичне перезавантаження модулів за замовчуванням".
- Примітка: Якщо веб-модулі вже додані на сервер, можливо, вам доведеться вимкнути "Автоматичне перезавантаження" на них окремо через вкладку "Модулі" (внизу вікна сторінки конфігурації).
- У розділі "Загальна інформація" натисніть "Відкрити конфігурацію запуску"
- На вкладці "Аргументи" додайте в кінець "Аргументи ВМ" таке:
-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 Server або VMware vFabric tc Server, який постачається зі STS. Для цих серверів існує параметр «Увімкнути перезавантаження на основі агента Java (експериментальний)», але в ньому використовується старіший випуск 1.2.0 Spring Loaded, який у мене не працював.