Развертывание портлетов 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 или приобретения лицензионного ключа, если это коммерческий проект. Если вы используете этот инструмент в своей компании, вам наверняка захочется использовать их сервер лицензий.

  1. Откройте вашу Liferay Development Studio (или Eclipse IDE с установленным плагином Liferay) и перейдите в раздел Справка> Торговая площадка Eclipse.
  2. Когда загрузится окно Eclipse Marketplace, найдите JRebel и пройдите процесс загрузки и установки.
  3. После завершения процесса установки (и перезапуска вашей IDE) выберите "Справка"> "JRebel"> "Активация".
  4. У вас будет окно с тремя вариантами (код активации, лицензионный ключ, сервер лицензий). Если вы используете My JRebel, скорее всего, у вас будет файл.lic. Вы захотите выбрать эту опцию и найти файл в вашей системе. Если вы используете это в корпоративной среде, я настоятельно рекомендую использовать сервер лицензий. Если не включены указания для этого, как это указано в другом месте и совсем не относится к Liferay.
  5. После активации JRebel вы должны увидеть перспективу конфигурации JRebel в верхнем правом углу.

  1. Нажмите на перспективу, перейдите на вкладку запуска и выберите следующие конфигурации

  1. Затем перейдите на вкладки проектов и выберите все портлеты, к которым вы хотите применить JRebel. Выбирайте только первое поле, если вы не используете контейнерную среду определенного типа (которую вы не указали).

  1. Затем в меню Eclipse выберите "Проект"> "Автоматически построить".

Тестирование вашей конфигурации

Есть несколько признаков того, что ваша конфигурация работает. Во-первых, в исходной папке ваших проектов вы должны увидеть файл конфигурации rebel.xml.



Если вы видите файл там, пришло время запустить сервер. Сразу после запуска сервера вы увидите несколько новых строк, написанных в верхней части файла журнала catalina.



Кроме того, во временной папке вашего Tomcat вы должны увидеть новый каталог JRebel.



После загрузки портала внесите изменения в один из ваших файлов Java. В консоли Catalina вы должны увидеть недавно напечатанную строку с полным именем класса, который вы только что изменили. Проверьте, вступили ли ваши изменения в силу!

вопросы

Если у вас есть проблемы в какой-либо части этого процесса, есть несколько вещей, на которые вы можете обратить внимание. Если вы получаете какие-либо ошибки permgen, вы можете изменить флаги JVM, связанные с памятью, на панели конфигурации вашего сервера. Кроме того, в том же месте вам может потребоваться переключить параметры автоматической публикации. Кроме того, у меня всегда были проблемы с тем, что JRebel не работает для сигнатур методов, созданных в файлах ORM, сгенерированных компоновщиком сервисов. Если я добавляю новый метод в эти классы, JRebel не поднимает его. Если я добавляю или изменяю тип параметра в одном из методов в этих классах, JRebel не поднимает его. Изменения в коде в localserviceimpl и serviceimpls кажутся хорошими во всех других отношениях, и любой другой класс работает отлично с JRebel. Инженеры ZeroTurnAround клянутся, что он отлично работает с Service Builder, но я не добился успеха в этих вышеупомянутых случаях.

Другие вопросы по тегам