Я новичок в Java EE и борюсь с медленностью процесса развертывания и задаюсь вопросом, не делаю ли я что-то неправильно. Я знаком с Django, где происходят немедленные изменения кода, и кажется, что горячие развертывания приложений Java EE немного запутывают - есть несколько вещей, которые требуют горячего развертывания (Glassfish, Eclipse manic hotdeploy, Jetty hotdeploy, JRebel и т.д.).
Мой проект - проект Maven, и я использую Netbeans для развертывания. На сайте используются структуры Spring, JSF и Hibernate.
В Netbeans, Deploy on Save, в соответствии со следующим снимком экрана, кажется, включен, но щелчок /unclicking невозможен, поскольку он утверждает, что получает информацию из моего pom.xml(хотя в моем pom нет такого поля. xml (только зависимости)).
Теперь изменения в некоторых файлах кажутся эффективными немедленно. К ним относятся: - Файлы JSF - Статические файлы
Изменения в следующем требуют развертывания: - Любой файл XML - любые файлы свойств, даже файлы свойств локализации - Любой java файл
Изменения, требующие от меня развертывания вручную, и перераспределение занимает полминуты, хотя в настоящее время у меня есть только 2-3 класса, в основном один класс пользователя и класс авторизации. В настоящий момент проект позволяет просто войти в систему, и, несмотря на это, компиляция занимает несколько секунд; и контейнер (Glassfish), кажется, потребляет около 600 МБ ОЗУ и даже дает ошибки PermGen после нескольких развертываний, и мне нужно убить процесс Java с помощью диспетчера задач. (Я прочитал, что это связано с утечкой сборщика мусора после каждого повторного развертывания, и я даже использовал jhat для создания профиля, но ему был представлен список тысяч классов, классов, Spring, классов Hibernate и т.д.).
Я тоже слышал о jrebel и пытался запустить его, но похоже, что он несовместим с моей версией Netbeans (7.0), и даже несмотря на то, что он, кажется, запускается, любая модификация любого java файла по-прежнему требует перераспределения.
Есть ли что-нибудь, что я могу сделать, чтобы исправить эти проблемы, или это нормально в Java EE, чтобы ждать около 1 минуты после каждого изменения в любом файле Java? Эта проблема значительно снижает производительность.
Вот мой вывод Glassfish при развертывании приложения: http://pastebin.com/7FhZ6AVh