Как настроить JRebel в среде Tomcat - PullRequest
4 голосов
/ 15 июня 2011

Мне трудно заставить JRebel работать в моей текущей среде разработки.

У меня есть многомодульные проекты Maven. В настоящее время экземпляр Tomcat управляется через службу (монитор tomcat), а развернутые веб-приложения настроены с использованием XML-файла, расположенного по адресу $ {catalina.home} / conf / Catalina / localhost , где атрибут docBase указывает $ {абсолютный путь проекта maven} / target / app (и атрибут reloadable - true). Поэтому каждый раз, когда я делаю сборку maven, мне нужно только вручную перезапустить tomcat, если какие-либо классы изменились. Если изменения произошли в статических ресурсах (JSP, HTML, JS, и т.д ..) обновление страницы сделает это.

С первой попытки я настроил веб-приложения для работы на сервере Tomcat, работающем внутри Eclipse. Предоставленный плагин maven также был успешно настроен: все мои подмодули унаследовали конфигурацию плагина, и при запуске tomcat я вижу выходные сообщения от JRebel, указывающие абсолютные пути проекта, которые были прослушаны. Единственная проблема заключается в том, что плагины Eclipse WTP / Tomcat не работают с функцией наложения War в Eclipse. После запуска сервера были развернуты только те ресурсы, которые присутствовали в последнем веб-приложении (модуль с другими зависимостями War).

Итак, я вернулся к своей первоначальной разработке конфигурации и представил JRebel. Я передал параметры java JRebel в Tomcat Vm, все модули maven имели файл rebel.xml (прослушивание правильных папок ресурсов), но ничего не происходит. Я не вижу обычных сообщений JRebel, и я экспериментировал с изменением JSP в исходной папке и обновлял страницу, но файл не был автоматически повторно развернут (в этом случае простая копия из исходной папки $ {maven.projec) } / target / app справится с задачей).

Мои два вопроса:

  1. Возможно ли преодолеть проблему затмения WTP?
  2. Что такое функциональная среда разработки, включающая Maven Eclipse и внешний кот?

Любая помощь будет принята с благодарностью!


ОБНОВЛЕНИЕ 1

Итак, я понял. Вроде ... Я все еще борюсь с наложением военных модулей. У меня есть основной модуль веб-приложений, который зависит от нескольких модулей веб-приложений. Поскольку файл rebel.xml генерируется динамически с помощью плагина jrebel maven, когда происходит сборка основного веб-приложения, преобладает только его файл jrebel.xml. Все остальные раздавлены. Файл rebel.xml для модулей jar находится в нужных местах (внутри файла jar).

Я могу заставить его работать, если я создаю собственный файл rebel.xml для основного веб-приложения, который указывает на все абсолютные каталоги, содержащие исходные файлы (статические файлы, такие как JSP, HTML, JS, CSS, изображения и т. Д.) в зависимости от веб-приложений. Но это бесполезно для моей среды разработки команды. Я использую свойства maven, но у нас есть две разные многомодульные иерархии maven, которые не знают друг о друге, и я не могу использовать корневую помпу для их соединения. Таким образом, такого рода свойств будет недостаточно, чтобы гарантировать правильность абсолютных путей, созданных на каждом компьютере разработчика в файле rebel.xml.

Сейчас я пытаюсь использовать какой-нибудь плагин maven для слияния rebel.xml. Для записи пока безуспешно.

Это становится другой проблемой, немного отличающейся от первоначального вопроса :) Может быть, я должен через другой вопрос.


ОБНОВЛЕНИЕ 2

У меня все получилось! .. наконец. Я использовал XSLT Generator Maven Plugin , чтобы помочь мне объединить различные файлы rebel.xml. Также пришлось использовать потрясающий плагин Maven Copy , потому что преобразование xslt произошло после окончательной упаковки войны, и мне пришлось добавить полученный rebel.xml в эту WAR.

Если кому-то нужны подробности о файлах конфигурации, не стесняйтесь спрашивать.

Надеюсь, это поможет кому-то там.

1 Ответ

0 голосов
/ 23 апреля 2013

Я получил это работает! .. наконец.Я использовал плагин XSLT Generator Maven, чтобы помочь мне объединить различные файлы rebel.xml.Также пришлось использовать потрясающий плагин Maven Copy, потому что преобразование xslt произошло после окончательной упаковки war, и мне пришлось добавить полученный rebel.xml к этой WAR.

...