Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Integration von Maven für Liferay-Projekte

Da Liferay von Hause aus kein Maven für das Buildmanagement ver­wen­det und statt­des­sen auf Ant setzt, kann man für eine Integration von Maven die nöti­gen Artifacts sel­ber erstel­len und sie in sein Maven Repository able­gen. Dazu haben wir in einem Projekt das von Mika Koivisto auf dem Liferay Blog beschrie­bene Vorgehen genutzt. Die dort gezeig­ten Schritte nut­zen eine Sammlung von Ant-Skripten, die von Liferay über das öffent­lich zugäng­li­che SVN-Repository abge­ru­fen wer­den kann, um dar­aus alle rele­van­ten Artifacts zu erzeugen.

Als ers­ten Schritt muss man die Sourcen per SVN abrufen:

svn --username guest co svn://svn.liferay.com/repos/public/portal/trunk portal-trunk

Mit

ant clean start jar

kön­nen dann alle Artifacts erzeugt werden.

Die so erzeug­ten Libraries kön­nen ent­we­der in das Repository deployt

ant -f build-maven.xml deploy-artifacts

oder per install Task benutzt werden.

ant -f build-maven.xml install-artifacts

Anschließend kann man die so erzeug­ten Artifacts als depen­den­cies ein­bin­den.

<dependency>
 <groupId>com.liferay.portal</groupId>
 <artifactId>portal-client</artifactId>
 <version>${liferay.version}</version>
</dependency>
<dependency>
 <groupId>com.liferay.portal</groupId>
 <artifactId>portal-impl</artifactId>
 <version>${liferay.version}</version>
 <scope>provided</scope>
</dependency>
<dependency>
 <groupId>com.liferay.portal</groupId>
 <artifactId>portal-kernel</artifactId>
 <version>${liferay.version}</version>
 <scope>provided</scope>
</dependency>
<dependency>
 <groupId>com.liferay.portal</groupId>
 <artifactId>portal-service</artifactId>
 <version>${liferay.version}</version>
 <scope>provided</scope>
</dependency>
<dependency>
 <groupId>com.liferay.portal</groupId>
 <artifactId>portal-web</artifactId>
 <version>${liferay.version}</version>
 <scope>provided</scope>
</dependency>
<dependency>
 <groupId>com.liferay.portal</groupId>
 <artifactId>util-bridges</artifactId>
 <version>${liferay.version}</version>
</dependency>
<dependency>
 <groupId>com.liferay.portal</groupId>
 <artifactId>util-java</artifactId>
 <version>${liferay.version}</version>
</dependency>
<dependency>
 <groupId>com.liferay.portal</groupId>
 <artifactId>util-taglib</artifactId>
 <version>${liferay.version}</version>
</dependency>

Eine eben­falls sehr prak­ti­sches Feature von Maven, das wir in unse­ren Liferay-Projekten ver­wen­den, sind die arche­ty­pes. Damit kön­nen sehr kom­for­ta­bel Projektstrukturen für Portlets, Layouts oder Themes erzeugt wer­den. Mit dem Befehl:

mvn archetype:generate

erhält man eine Liste aller zur Verfügung ste­hen­den Projekttemplates.

9: remote -> liferay-layouttpl-archetype (Provides an archetype to create Liferay layout templates.)
10: remote -> liferay-portlet-archetype (Provides an archetype to create Liferay portlets.)
11: remote -> liferay-theme-archetype (Provides an archetype to create Liferay themes.)

Nach der Auswahl eines Types (lay­outtpl, port­let oder theme) muss man die gewünschte Liferay-Version, die Maven groupId, die artifactId und die Version ein­ge­ben und bekommt anschlie­ßend eine neue Projektordnerstruktur mit den wich­tigs­ten Konfigurationsdateien wie bspw. die liferay-layout-templates.xml angelegt.

Related Posts

Pin It on Pinterest