Можно посмотреть презентацию "для вдохновения" zeroturnaround.com/jrebel/presentations.
Я использую IntelliJ IDEA, для других IDE инструкция может слегка отличаться, см zeroturnaround.com/resources .
1. Идем в IDE settings | plugins и находим среди доступных JRebel Plugin, Download and Install, Apply (restart).
С сайта zeroturnaround.com/jrebel/current ничего качать не нужно, все включено в плагин.
2. В IDE settings появится пункт JRebel, там нажимаем Launch JRebel Configuration Wiazard...
Первый пункт активация - проще и дешевле начать с evolution.
Второй пункт license пропускаем - evolution сам сгенерирует и активизирует лицензию на 30 дней.
3. пункт Choose settings выбираем какая IDE используется, тогда следующие пункты будут показывать инструкции по мелкой оптимальной подстройке этой IDE.
Следует выставить три 'галочки' в IDE по инструкциям в последующих пунктах.
Закончили с установкой и конфигурированием.
4. В Project view проекта в pop-up menu выбираем Generate rebel.xml
Далее как сделал я и как удобно мне, возможно вам тоже понравится :-)
5. Сохраняем rebel.xml в [webroot]/WEB-INF/classess
Это единственный, довольно простой конфигурационный файл JRebel.
Основные настройки описаны в zeroturnaround.com/jrebel/how-to-configure-rebel-xml
На всякий случай ссылка на полное описание (скорее всего не понадобится): zeroturnaround.com/jrebel/configuration
Настройки по умолчанию мне не подошли т.к.
a. я использую Apache Click, который при старте достает некоторые ресурсы в [webroot], а так как по умолчанию используется [webroot] в исходниках, то система контроля версий обнаруживает кучу новых файлов.
b. в проекте много модулей, которые компилируются в jar-ы и кладутся в [webroot]/WEB-INF/lib
Поэтому пришлось прописать папку target/название_web_app - как [webroot],
и несколько target/production/название_модуля - как путь для поиска классов, где:
* target стандартное maven-название папки куда все компилируется,
* production - папка принудительно создаваемая IDEA,
* название_web_app - путь который вы прописали в Web Application exploded artifact, e.g. voip, smsrouter, etc,
* название_модуля - IDEA создает для каждого модуля свои подпапки в production.
Итоговый файл:
<?xml version="1.0" encoding="UTF-8"?> <application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd"> <classpath> <dir name="C:/j/voip.dev/bh/target/production/core"/> <dir name="C:/j/voip.dev/bh/target/production/demo"/> <dir name="C:/j/voip.dev/bh/target/production/mca"/> <dir name="C:/j/voip.dev/bh/target/production/tts"/> </classpath> <web> <link target="/"><!-- если эту папку zip-ануть, получится .war --> <dir name="C:/j/voip.dev/bh/target/voip" /> </link> </web> </application>
Готово!
Далее просто запускаем Tomcat не обычной зеленой стрелочкой, а стрелочкой с "jr".
Вносим изменения в код, компилируем (IDEA перед этим сохраняет) Ctrl+Shift-F9 или Ctrl-F9, F5 в браузере и видим обновление.
PS: если хочется ускорить первый старт Tomcat, то мой предыдущий совет "скопировать папку VAADIN из vaadin.jar в [webroot]" по прежнему применим.
Кроме того, возможно вам захочется избавиться от сериализации HTTP сессии между рестартами Tomcat (пользы от этой сериализации в случае Vaadin не очень много), для этого в [webroot]/META-INF нужно поместить файл context.xml вида:
<?xml version='1.0' encoding='utf-8'?> <Context antiJARLocking="true" > <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- disable session persistence across Tomcat restarts --> <Manager pathname="" /> </Context>
Аттрибут antiJARLocking="true" опционален (можно убрать). Он нужен если web приложение не освобождает какие-то классы и не выгружается Tomcat (свой код лучше от такого чистить, но бывают такие библиотеки третьих сторон).
Комментариев нет:
Отправить комментарий