Для генерации нового maven проекта
плагина для Liferay
необходимо выполнить ряд шагов. В качестве примера будем делать это в
интерактивном режиме, в дальнейшем можно будет уместить все в одну команду с
параметрами.
Вначале вводим команду:
mvn archetype:generate
Система maven предлагает
множество архитипов проектов доступных на текущий момент в его основном
репозитории, из которых мы должны выбрать конкретный тип:
Choose a number or apply filter (format:
[groupId:]artifactId, case sensitive contains): 619:
Вводим liferay
чтобы отфильтровать список архитипов:
Choose archetype:
1: remote ->
com.liferay.maven.archetypes:liferay-ext-archetype (Provides an archetype to
create Liferay extensions.)
2: remote ->
com.liferay.maven.archetypes:liferay-hook-archetype (Provides an archetype to
create Liferay hooks.)
3: remote ->
com.liferay.maven.archetypes:liferay-layouttpl-archetype (Provides an archetype
to create Liferay layout templates.)
4: remote ->
com.liferay.maven.archetypes:liferay-portlet-archetype (Provides an archetype
to create Liferay portlets.)
5: remote ->
com.liferay.maven.archetypes:liferay-portlet-icefaces-archetype (Provides an
archetype to create Liferay ICEfaces portlets.)
6: remote ->
com.liferay.maven.archetypes:liferay-portlet-jsf-archetype (Provides an
archetype to create Liferay JSF portlets.)
7: remote ->
com.liferay.maven.archetypes:liferay-portlet-liferay-faces-alloy-archetype
(Provides an archetype to create Liferay Faces Alloy portlets.)
8: remote -> com.liferay.maven.archetypes:liferay-portlet-primefaces-archetype
(Provides an archetype to create Liferay PrimeFaces portlets.)
9: remote ->
com.liferay.maven.archetypes:liferay-portlet-richfaces-archetype (Provides an
archetype to create Liferay RichFaces portlets.)
10: remote -> com.liferay.maven.archetypes:liferay-portlet-spring-mvc-archetype
(Provides an archetype to create Liferay Spring MVC portlets.)
11: remote -> com.liferay.maven.archetypes:liferay-servicebuilder-archetype
(Provides an archetype to create Liferay Service Builder portlets.)
12: remote ->
com.liferay.maven.archetypes:liferay-theme-archetype (Provides an archetype to
create Liferay themes.)
13: remote ->
com.liferay.maven.archetypes:liferay-web-archetype (Provides an archetype to
create Liferay webs.)
14: remote -> com.vaadin:vaadin-archetype-liferay-portlet
(This archetype creates a self-contained Vaadin Liferay portlet.
It
packages all Vaadin static resources (widgetset, theme etc.)
and
doesn't make use of portal-provided resources.
Liferay-specific properties should be defined in a Maven profile
and you
should activate this profile when performing builds of a
project
based on this archetype.
Please
see https://www.liferay.com/documentation/liferay-portal/6.2/deve
lopment/-/ai/developing-plugins-using-maven-liferay-portal-6-2-dev-guide-02-en)
Choose a number or apply filter (format:
[groupId:]artifactId, case sensitive contains): :
Вводим 11 что бы
выбрать архитип liferay-servicebuilder-archetype.
Данный архитип предназначен для создания
проекта плагина портлета Liferay содержащего сервисы для доступа к базе данных.
Далее необходимо выбрать версию
архитипа:
Choose
com.liferay.maven.archetypes:liferay-servicebuilder-archetype version:
1: 6.1.0
2: 6.1.1
3: 6.1.2
4: 6.1.10
5: 6.1.20
6: 6.1.30
7: 6.1.30.1
8: 6.2.0-B1
9: 6.2.0-B2
10: 6.2.0-B3
11: 6.2.0-M5
12: 6.2.0-M6
13: 6.2.0-RC1
14: 6.2.0-RC2
15: 6.2.0-RC3
16: 6.2.0-RC4
17: 6.2.0-RC5
18: 6.2.0-ga1
19: 6.2.1
20: 6.2.2
21: 6.2.10.4
22: 6.2.10.5
23: 6.2.10.6
24: 6.2.10.7
25: 6.2.10.8
26: 6.2.10.9
27: 6.2.10.10
28: 6.2.10.11
29: 6.2.10.12
30: 7.0.0-m1
31: 7.0.0-m2
Если вы разрабатываете плагин для
версии 6.1 то нужно выбрать версию 6.1.2, потому что на версии 6.1.1 есть проблемы при сборке
сервисов, которая заключается в том что при повторной сборке сервисов удаляется
старая версия файла portlet-model-hints.xml,
версии плагинамавен 6.1.2 это
проблема исправлена.
Я выбрал версию 6.2.1.
Далее необходимо ввести groupId, artifactId, версию, пакет для нашего
проекта (если не хотите вводить значение и оставить значение по умолчанию,
достаточно нажать Enter):
Define value for property 'groupId': : ru.rezistenz.liferay.portlet
Define value for property 'artifactId': : sample
Define value for property 'version': 1.0-SNAPSHOT: :
Define value for property 'package':
ru.rezistenz.liferay.portlet: :
Confirm properties configuration:
groupId:
ru.rezistenz.liferay.portlet
artifactId: sample
version: 1.0-SNAPSHOT
package:
ru.rezistenz.liferay.portlet
Y: :
Далее вводим Y,
подтверждая введенную информацию:
[INFO]
-------------------------------------------------------------------------
---
[INFO] Using following parameters for creating project
from Archetype: liferay-s
ervicebuilder-archetype:6.2.1
[INFO] -------------------------------------------------------------------------
---
[INFO] Parameter: groupId, Value:
ru.rezistenz.liferay.portlet
[INFO] Parameter: artifactId, Value: sample
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value:
ru.rezistenz.liferay.portlet
[INFO] Parameter: packageInPathFormat, Value:
ru/rezistenz/liferay/portlet
[INFO] Parameter: package, Value:
ru.rezistenz.liferay.portlet
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: ru.rezistenz.liferay.portlet
[INFO] Parameter: artifactId, Value: sample
[INFO] project created from Archetype in dir:
d:\alex\mvn_proj\sample
[INFO]
------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 44:29.109s
[INFO] Finished at: Sat Jul 04 10:07:17 GMT+06:00 2015
[INFO] Final Memory:
10M/25M
[INFO]
------------------------------------------------------------------------
Получившийся проект содержит следующую структуру:
sample
│ pom.xml
│
├───sample-portlet
│ │ pom.xml
│ │
│ └───src
│ └───main
│ ├───java
│ ├───resources
│ │ portlet.properties
│ │
│ └───webapp
│ │ icon.png
│ │ view.jsp
│ │
│ ├───css
│ │ main.css
│ │
│ ├───js
│ │ main.js
│
│
│ └───WEB-INF
│
liferay-display.xml
│
liferay-plugin-package.properties
│
liferay-portlet.xml
│
portlet.xml
│
service.xml
│ web.xml
│
└───sample-portlet-service
pom.xml
Проект содержит 2 модуля –
портлет и проект jar сервисов для портлета.
Далее необходимо настроить maven свойства
(property) для данного
проекта, иначе проект не соберется.
Свойства можно определить различными
путями(для справки обратитесь к документации по maven), будем использовать самый простой
способ – внутри pom.xml.
Свойства которые необходимо
определить разброшены по файлу pom.xml в
виде ${имя.свойства}.
Нам необходимо определить
следующие обязательные свойства:
${liferay.maven.plugin.version} – версия плагина Liferay для maven
${liferay.version} – версия Liferay
И дополнительные:
${liferay.auto.deploy.dir} – путь к папке в файловой системе liferay-portal-x.x.x/deploy предназначенной для деплоя собранного
пакета нашего плагина (war архив)
${liferay.app.server.deploy.dir} – путь до папки liferay-portal-x.x.x/tomcat-x.x.x/webapps
${liferay.app.server.lib.global.dir} – путь до папки liferay-portal-x.x.x/tomcat-x.x.x/lib/ext
${liferay.app.server.portal.dir} – путь до папки liferay-portal-x.x.x/tomcat-x.x.x/webapps/ROOT
Дополнительные свойства лучше
перенести в файл .m2/settings.xml содержащий настройки профилей maven характерных для вашей
системы. (для дополнительной информации о файле settings.xml см. https://maven.apache.org/settings.html).
Дополнительные свойства можно не
определять, но тогда сборка пакета может занять больше времени, потому что maven при
полной отчистке и сборке проекта будет скачивать и копировать необходимые для
сборки файлы liferay
определенной версии из своего репозитория, а это довольно большой объем данных.
Если определить дополнительные параметры, то для сборки будут использоваться
файлы из определенных в параметрах каталогах и сборка будет проходить намного
быстрее.
Таким образом для определения
основных свойств добавим в файл pom.xml следующие
теги:
...
<properties>
<liferay.maven.plugin.version>6.2.1</liferay.maven.plugin.version>
<liferay.version>6.2.1</liferay.version>
</properties>
...
Далее необходимо собрать проект.
Для полной сборки плагина:
mvn
package
Для генерации сервисов необходимо выполнить команду:
mvn liferay:build-service
Для деплоя:
mvn liferay:deploy
Для дополнительной информации:
Комментариев нет:
Отправить комментарий