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