IntelliJ + Tomcat + Spring -Loaded
Я хотел бы попробовать Spring Источник "Spring Загруженный" агент перезагрузки класса, а Tomcat запускается через IntelliJ.
https://github.com/SpringSource/spring-loaded
Я добавил аргументы JVM в мою конфигурацию запуска Tomcat, и мой webapp запускается без ошибок и, кажется, ведет себя нормально.
Я действительно не уверен, как вызвать перезагрузку класса. Мне просто нужно скомпилировать классы, которые я изменяю? Я пробовал это, и это, похоже, не сработало. Нужно ли мне обновлять Tomcat и развертывать классы и ресурсы? Это тоже не работает...?
Приветствуются особые детали конфигурации.
EDIT: больше информации, я думаю, что моя проблема, возможно, связана с использованием двух модулей, одной - базовой библиотеки кода, и одной - webapp. Я использую Maven для обоих, один из которых сконфигурирован как проект jar, а другой - как военный проект. IntelliJ устанавливает артефакт для взрывающейся войны, чтобы использовать файл jar-модуля jar. Я попытался переключить конфигурацию Artifact, чтобы вместо этого добавить компиляционный модуль jar в WEB-INF/classes. Теперь я вижу файлы .class в target/webapp/WEB-INF/class/etc. Но я не уверен, как заставить IntelliJ обновлять определенный файл класса, когда я его редактирую.
Ответы
Ответ 1
Если вы добавили следующие параметры jvm (как описано на странице с загруженной пружиной) на ваш tomcat
-javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify SomeJavaClass
все должно быть хорошо. Это может помочь отключить автоматическую перезагрузку в tomcat для webapp, который вы тестируете. Для exmaple в вашем server.xml:
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Context docBase="projekt" path="/projekt" reloadable="false" ...
Это гарантирует, что только loadloaded загрузчик классов загружает измененные классы.
Ответ 2
spring загружен не может горячие банки.
Поместите вывод веб-фрагмента в webapp/WEB-INF/classes
Также поддерживается только spring только поддержка spring 4.1
https://github.com/spring-projects/spring-loaded/issues/139