Развертывание портлетов Liferay
Добрый день.
Я работаю над переходом с WebSphere на Liferay 6.2 CE.
Пока что я могу экспортировать основной проект в WAR-файл и импортировать его в Liferay.
Настоящая проблема возникает в среде разработки...
Когда в проект вносятся изменения, процесс развертывания занимает много времени. Необходимо исключить предыдущий портлет и установить новый с откомпилированными изменениями.
Есть ли более простой способ развернуть проект, напрямую имеющий Liferay Portlet? Что-то вроде, нажмите кнопку или запустите команду и немедленно разверните ее на сервере Liferay.
С наилучшими пожеланиями.
1 ответ
Автоматизация сборки и развертывания
Разработка портлетов Liferay 6.2 поддерживает автоматизацию сборки Ant, Ivy и Maven. Наши разработчики обычно используют сценарии сборки Ant, которые входят в стандартную комплектацию Liferay 6.2, и мы используем Jenkins для автоматизации наших развертываний на наших различных тестовых и производственных серверах.
Однако, даже с вышеупомянутыми инструментами, сборки в 6.2 могут быть утомительными и очень трудоемкими. Эта проблема в основном устранена в DXP с введением модулей OSGi, но эти модули OSGi не поддерживаются в 6.2.
Хотя Liferay не предоставляет решения для этого "из коробки", есть еще один инструмент, который значительно сократил время сборки и развертывания в 6.2
JRebel
JRebel - великолепный продукт для разработки Java EE, который особенно полезен и поддерживается на платформе Liferay. По сути, JRebel - это инструмент, который позволяет вам сохранять изменения в вашем коде и мгновенно просматривать эти изменения без выполнения каких-либо целей Ant или перемещения каких-либо военных файлов.
JRebel не является бесплатным продуктом (он стоит 500 долларов в год за лицензию), но вы можете получить бесплатную копию (со 100% функциональностью), если вы используете ее для некоммерческих проектов. Чтобы получить лицензию, просто найдите "Мой JRebel" и зарегистрируйте учетную запись.
JRebel для Liferay
JRebel очень легко интегрируется с Liferay, и в блогах Liferay есть некоторая документация, касающаяся конфигурации. Однако в последний раз, когда я проверял сообщения в блоге, описывался более старый способ конфигурации, который больше не поддерживается (или, по крайней мере, не является предпочтительным). Поэтому я кратко расскажу о шагах, необходимых для настройки JRebel с Liferay.
конфигурация
Выполните следующие действия после получения бесплатной лицензии через My JRebel или приобретения лицензионного ключа, если это коммерческий проект. Если вы используете этот инструмент в своей компании, вам наверняка захочется использовать их сервер лицензий.
- Откройте вашу Liferay Development Studio (или Eclipse IDE с установленным плагином Liferay) и перейдите в раздел Справка> Торговая площадка Eclipse.
- Когда загрузится окно Eclipse Marketplace, найдите JRebel и пройдите процесс загрузки и установки.
- После завершения процесса установки (и перезапуска вашей IDE) выберите "Справка"> "JRebel"> "Активация".
- У вас будет окно с тремя вариантами (код активации, лицензионный ключ, сервер лицензий). Если вы используете My JRebel, скорее всего, у вас будет файл.lic. Вы захотите выбрать эту опцию и найти файл в вашей системе. Если вы используете это в корпоративной среде, я настоятельно рекомендую использовать сервер лицензий. Если не включены указания для этого, как это указано в другом месте и совсем не относится к Liferay.
- После активации JRebel вы должны увидеть перспективу конфигурации JRebel в верхнем правом углу.
- Нажмите на перспективу, перейдите на вкладку запуска и выберите следующие конфигурации
- Затем перейдите на вкладки проектов и выберите все портлеты, к которым вы хотите применить JRebel. Выбирайте только первое поле, если вы не используете контейнерную среду определенного типа (которую вы не указали).
- Затем в меню Eclipse выберите "Проект"> "Автоматически построить".
Тестирование вашей конфигурации
Есть несколько признаков того, что ваша конфигурация работает. Во-первых, в исходной папке ваших проектов вы должны увидеть файл конфигурации rebel.xml.
Если вы видите файл там, пришло время запустить сервер. Сразу после запуска сервера вы увидите несколько новых строк, написанных в верхней части файла журнала catalina.
Кроме того, во временной папке вашего Tomcat вы должны увидеть новый каталог JRebel.
После загрузки портала внесите изменения в один из ваших файлов Java. В консоли Catalina вы должны увидеть недавно напечатанную строку с полным именем класса, который вы только что изменили. Проверьте, вступили ли ваши изменения в силу!
вопросы
Если у вас есть проблемы в какой-либо части этого процесса, есть несколько вещей, на которые вы можете обратить внимание. Если вы получаете какие-либо ошибки permgen, вы можете изменить флаги JVM, связанные с памятью, на панели конфигурации вашего сервера. Кроме того, в том же месте вам может потребоваться переключить параметры автоматической публикации. Кроме того, у меня всегда были проблемы с тем, что JRebel не работает для сигнатур методов, созданных в файлах ORM, сгенерированных компоновщиком сервисов. Если я добавляю новый метод в эти классы, JRebel не поднимает его. Если я добавляю или изменяю тип параметра в одном из методов в этих классах, JRebel не поднимает его. Изменения в коде в localserviceimpl и serviceimpls кажутся хорошими во всех других отношениях, и любой другой класс работает отлично с JRebel. Инженеры ZeroTurnAround клянутся, что он отлично работает с Service Builder, но я не добился успеха в этих вышеупомянутых случаях.