Работает ли JRebel со встроенными серверами приложений? (IntelliJ)
Я использую скрипт Gradle для развертывания в плагин Jetty или Tomcat. Я делаю это в IntelliJ, и я установил плагин JRebel для intellij.
Когда я использую плагин для запуска своего скрипта Gradle, я не думаю, что JRebel может понять, куда помещать обновленные файлы классов. Есть ли способ сказать это?
В качестве альтернативы я попытался выполнить развертывание на автономном сервере Tomcat (через IntelliJ), но он продолжает получать ошибки PermGen и заставляет мою среду IDE зависать. Я читал подсказки, что медлительность может быть связана с использованием компилятора Ajc, это правда? Кроме того, в конфигурации Tomcat я добавил несколько довольно щедрых CATALINA_OPTS (-Xms512m -Xmx2048m). Будут ли они перезаписаны JAVA_OPTS, переданным JRebel? Я не могу себе представить, что мне нужно выделить еще больше памяти...
2 ответа
Да, он работает с плагином Tomcat, если вы запускаете его из командной строки. Пожалуйста, обратитесь к разделу часто задаваемых вопросов о плагине для полного объяснения того, как его настроить. Я не уверен насчет плагина JRebel в IntelliJ. Вы можете просто запустить задачу tomcatRun
от IntelliJ с использованием плагина JetGradle (интеграция с IntelliJ Gradle).
Вам нужен правильный файл rebel.xml, который сообщит JRebel, где находятся скомпилированные классы. Его можно легко сгенерировать с помощью плагина JRebel для IntelliJ - щелкните правой кнопкой мыши по проекту и нажмите "Generate rebel.xml".
Чтобы обойти ошибки PermGen, вы должны использовать опцию -XX:MaxPermSize, как было сказано выше.