null

Создание портлетов для Liferay при помощи maven

Изначально портлеты для Liferay собирались ant скриптами, но начиная с версии 6 появилась возможность использовать для разработки портлетов maven. Я не мог пройти мимо этой возможности, поэтому в этом посте опишу процесс создания портлета при помощи Liferay Maven SDK.

Для начала работы нужно установить maven и задать необходимые переменные окружения. О том, как это делается, можно прочитать здесь.

Многие, кто использовал maven для разработки enterprise проектов сталкивались с тем, что иногда публичные репозитории бывают недоступны, поэтому для повышения надежности и ускорения процесса сборки стоит иметь локальный репозиторий/прокси. Для того, чтобы задеплоить артефакты Liferay в локальный репозиторий, необходимо скачать здесь maven sdk, после чего его нужно разархивировать и выполнить установку при помощи команды:

ant install 

На этом шаге можно получить OutOfMemoryException, в этом случае надо выделить для maven'a больше памяти через переменную окружения MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m.

Теперь можно приступать к созданию портлета. Для этого нужно:

1. В папку, которая будет корневой для проектов, поместить файл pom.xml следующего содержания:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
 
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
 
<name>projectName</name>
<url></url>
 
<properties>
<liferay.auto.deploy.dir></liferay.auto.deploy.dir>
<liferay.version>6.1.0</liferay.version>
</properties>
</project>

(Подставьте необходимые вам groupId, artifactId, и name. Также задайте правильный путь к autodeploy каталогу. Значение свойства liferay.version должно соответствовать используемой версии Liferay.)

2. Открыть терминал и зайти в папку с pom.xml. Выполните команду

mvn archetype:generate

Из предложенных списков шаблонов выберите:

...
49: remote -> com.liferay.maven.archetypes:liferay-portlet-archetype
(Provides an archetype to create Liferay portlets.)
...

Затем аналогично выберите из списка правильную версию Liferay, groupId, artifactId и version, и подтвердите введенные значения:

Choose version:
1: 6.0.2
2: 6.0.3
3: 6.0.4
4: 6.0.5
5: 6.0.6
6: 6.1.0
7: 6.1.1
8: 6.1.10
9: 6.1.20
...
Define value for property 'groupId': : com.tuneit.mvnsample
Define value for property 'artifactId': : test-portlet
Define value for property 'version': 1.0-SNAPSHOT: :
Define value for property 'package': com.tuneit.mvnsample: :
Confirm properties configuration:
groupId: com.tuneit.mvnsample
artifactId: test-portlet
version: 1.0-SNAPSHOT
package: com.tuneit.mvnsample
Y: :

3. Теперь можно перейти в папку созданного проекта и выполнить следующие команды:

mvn package

для того, чтобы скомпилировать классы и создать war файл, и

mvn liferay:deploy

для того, чтобы развернуть Liferay на сервере.

Все описанные выше операции можно выполнить и в NetBeans:

  1. File -> New project

  2. Выберите нужный шаблон

  3. Введите параметры

Готово!