Мне трудно заставить 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 справится с задачей).
Мои два вопроса:
- Возможно ли преодолеть проблему затмения WTP?
- Что такое функциональная среда разработки, включающая 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.
Если кому-то нужны подробности о файлах конфигурации, не стесняйтесь спрашивать.
Надеюсь, это поможет кому-то там.