Utilización de arquetipos y plugins de LifeRay para Maven.

2
9716

Utilización de arquetipos y plugins de LifeRay para Maven.

1. Introducción

Hasta la fecha, los pasos que teníamos que seguir para utilizar Maven en nuestros proyectos con Liferay eran un poco farragosos pues debíamos utilizar el arquetipo de webapp y copiar los recursos generados por el fichero create.sh o create.bat que venían en el SDK de LifeRay. Con la inminente llegada de la versión 6.0 de Liferay esto va a cambiar. Se han incluido tres arquetipos para generar la estructura de portlet, temas y layout y un plugin para el despliegue en LifeRay. Aunque a priori son artefactos para la próxima versión de éste veremos que con pequeños cambios en el pom podremos utilizarlos para versiones anteriores.

2. Entorno

Entorno utilizado para escribir este tutorial:

  • Hardware: Mac Book Pro (Core 2 Duo 2,8 Ghz, 4 GB RAM, 500 GB)
  • Sistema Operativo: Snow Leopard
  • Navegador Web:Mozilla Firefox 3.6.3
  • Maven: 2.2.1

3. Configuración del repositorio maven .

Para poder utilizar los arquetipos y el plugin únicamente debemos añadir a nuestro fichero settings.xml de Maven el repositorio donde se encuentran dichos artefactos.


...

    		liferay
    		
    			
    			liferay-repository
     				Repositorio Liferay
     				http://oss.sonatype.org/content/groups/public
     				default
     				
     					true
     				
     				
     					true
     				
    			
    		
    		
    			
    				liferay-repository-archetype
     				Repositorio Liferay
     				http://oss.sonatype.org/content/groups/public
     				default
     				
     					true
     				
     				
     					true
     				
    			
    		
    	
...
< profile>

 
  ...
  liferay
  ...

Ahora podemos utilizar cualquiera de los tres arquetipos para crear nuestro proyecto LifeRay con Maven.

4. Creando un portlet con el arquetipo liferay-portlet-archetype.

Vamos a ver los pasos a seguir para crear un artefacto portlet para liferay. Para ello ejecutamos el siguiente comando:

  mvn -e archetype:create -DgroupId=com.adictos.portlet -DartifactId=maven-portlet -DarchetypeArtifactId=liferay-portlet-archetype -DarchetypeGroupId=com.liferay.maven.archetypes -DarchetypeVersion=6.0.2-SNAPSHOT

Figura 1. Creación de un portlet con liferay-portlet-archetype.

pantallazo Creación de un portlet con liferay-portlet-archetype.

Si por el contrario queremos crear un tema o un layout tenemos que utilizar los arquetipos liferay-theme-archetype y liferay-layouttpl respectivamente.

A continuación, para que el proyecto se importe correctamente desde el Eclipse tenemos que editar el fichero pom.xml y modificar la propiedad «liferay.version» de 6.0.1-SNAPSHOT a 6.0.2-SNAPSHOT. Este cambio es necesario para que el contenedor de classpath de maven funcione correctamente una vez importado ya que la version 6.0.1-SNAPSHOT ya no existe en el repositorio que hemos añadido anteriormente.

Ahora importamos el proyecto en el eclipse File -> Import, seleccionamos el Wizard «Maven 2 Project» y accedemos a la ruta donde hayamos creado el proyecto y pulsamos Finish. Al terminar tendremos la siguiente estructura:

Figura 2. Estructura del proyecto en eclipse.

pantallazo Estructura del proyecto en eclipse.

Para que el plugin de despliegue funcione correctamente debemos modificar la propiedad «liferay-auto.deploy» del fichero pom.xml con la ruta en la que se encuentre la carpeta auto deploy de nuestro servidor en donde está instalado liferay.

Al final nuestro pom.xml quedaría de la siguiente forma:

 


	4.0.0
	com.adictos.portlet
	maven-portlet
	war
	maven-portlet Portlet
	1.0-SNAPSHOT
	
		
			
				com.liferay.maven.plugins
				liferay-maven-plugin
				${liferay.version}
				
					${liferay.auto.deploy.dir}
				
			
			
				maven-compiler-plugin
				
					UTF-8
					1.5
					1.5
				
			
		
	
	
		
			com.liferay.portal
			portal-service
			${liferay.version}
			provided
		
		
			com.liferay.portal
			util-bridges
			${liferay.version}
		
		
			com.liferay.portal
			util-taglib
			${liferay.version}
		
		
			com.liferay.portal
			util-java
			${liferay.version}
		
		
			javax.portlet
			portlet-api
			2.0
			provided
		
		
			javax.servlet
			servlet-api
			2.4
			provided
		
		
			javax.servlet.jsp
			jsp-api
			2.0
			provided
		
	
	
		/Developer/Servidores/LifeRay-Tomcat-6.0/deploy
		6.0.2-SNAPSHOT
	
	

Para desplegar el portlet en Liferay ejecutamos:

mvn -e clean package liferay:deploy

Nos logamos en Liferay y el portlet aparecerá registrado en la categoría «Sample» del catálogo de portlets de Liferay.

Figura 3. Portlet desplegado en la categoría Sample.

pantallazo Portlet desplegado en la categoría Sample.

Para usuarios que utilicen por ejemplo, Liferay 5.2.3, pueden utilizar estos arquetipos y el plugin para el despliegue. Únicamente tendrán que subir a su repositorio las librerías de la versión 5.2.3, cambiar la propiedad «liferay.version» a 5.2.3 y crear una nueva propiedad donde establecer la versión del plugin de liferay, quizá con el nombre «liferay.version.plugin» con el valor 6.0.2-SNAPSHOT. Finalmente quedaría algo así:

  


	4.0.0
	com.adictos.portlet
	maven-portlet
	war
	maven-portlet Portlet
	1.0-SNAPSHOT
	
		
			
				com.liferay.maven.plugins
				liferay-maven-plugin
				${liferay.version.plugin}
				
					${liferay.auto.deploy.dir}
				
			
			
				maven-compiler-plugin
				
					UTF-8
					1.5
					1.5
				
			
		
	
	
		
			com.liferay.portal
			portal-service
			${liferay.version}
			provided
		
		
			com.liferay.portal
			util-bridges
			${liferay.version}
		
		
			com.liferay.portal
			util-taglib
			${liferay.version}
		
		
			com.liferay.portal
			util-java
			${liferay.version}
		
		
			javax.portlet
			portlet-api
			2.0
			provided
		
		
			javax.servlet
			servlet-api
			2.4
			provided
		
		
			javax.servlet.jsp
			jsp-api
			2.0
			provided
		
	
	
		/Developer/Servidores/LifeRay-Tomcat-6.0/deploy
		5.2.3
		6.0.2-SNAPSHOT
	

5. Conclusión.

Tras esto, habéis podido ver que ahora es mucho más sencillo crear nuestro proyecto Maven para desarrollar portlets, temas y layout en Liferay. Como dice el refrán «más vale tarde que nunca» y los chicos de Liferay nos han proporcionado arquetipos oficiales y de momento un plugin para el despliegue en nuestro entorno de desarrollo.

2 COMENTARIOS

  1. Hola, estoy siguiendo este tutorial para liferay-portal-5.2.3 y todo me funciona correctamente, excepto que al crear el arquetipo, no me crea el archivo web.xml, con lo cual que me da un error al intentar desplegar el porlet. Podrían ayudarme con esto? Gracias de antemano

  2. Parece que versiones posteriores de este arquetipo no incluye el fichero web.xml.
    Para resolver tu problema únicamente deberá añadir un fichero web.xml prácticamente sin ninguna información a no ser que utilices frameworks como spring-mvc u otro.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad