В настоящее время мы используем MyEclipse со встроенной интеграцией Maven4MyEclipse и встроенной поддержкой J2EE-сервера, но хотим конвертировать его в обычное eclipse (специально для Helios), чтобы иметь возможность использовать свою 64-разрядную установку в Windows. (MyEclipse еще не поддерживает 64-разрядную версию в Windows.)
До сих пор у меня есть рабочий прототип затмения Helios с использованием m2eclipse с плагином WTP, который развертывает наше большое веб-приложение для tomcat. Развертывание - это небольшой процессор, но он работает, и приложение запускается.
Что здесь принципиально другое, так это то, как развертываются зависимые проекты. В нашей среде MyEclipse все зависимые проекты были развернуты в папку WEB-INF/classes, поэтому, пока сервер работал, изменение класса Java в среде IDE будет копировать только затронутые файлы на сервер WEB-INF/классы и "горячая замена" класса в JVM и... boom - живое изменение на сервере. GREAT для отладки.
В моем преобразовании helios, однако, все зависимые проекты получают JARed и помещаются в WEB-INF/lib. Это имеет то преимущество, что на самом деле выглядит то, на что похоже наше реальное изображение, построенное на основе maven, но среда разработки сильно обездолена в этом тем, что возможности "горячей" замены полностью утрачены. Здесь, если я изменю java-класс в зависимом проекте, m2eclipse повторно упакует JAR, увидит, что развернутое веб-приложение не синхронизировано и переиздает все приложение. Мало того, что это проблема в том, что все веб-приложение должно цикл (что-то наше откровенно не очень хорошо, учитывая его размер и огромное время инициализации), это также неприятная задержка в затмении, делающая свою публикацию. (Для нашего применения это занимает около минуты или два.)
Итак, мой вопрос заключается в следующем: есть ли способ получить изменения внутри зависимых проектов до "горячей" замены на запущенной JVM и заменить развернутые файлы без этого неприятного штрафа за публикацию? Я предполагаю, что это означает развертывание этих файлов классов в WEB-INF/классах, но не знаю точно, что (a) возможно или (b) действительно необходимо как часть этого решения.
Что делают другие, чтобы решить это? Разрешима ли она?
Спасибо заранее!