[Tutorial] Mi primer proyecto Alfresco con Maven

¡Muy buenas a tod@s!

Hace algún tiempo estuve echándole una mano a David Selma con su proyecto de carrera basado en Alfresco, en concreto con la configuración de un proyecto Maven para extender algunas funcionalidades de Alfresco. Eso, sumado a la insistencia de mi colega Jordi Solis, me ha llevado a publicar este mini tutorial para ayudar a aquellas personas que están empezando con Alfresco y Maven os resulte algo más sencillo “echar a andar”.

Este tutorial está pensado para que en unos minutos seas capaz de configurar dos proyectos, uno para el repositorio (que irá dirigido a la aplicación de Alfresco) y otro para Share, probarlo y no morir en el intento :-)

Antes de empezar…

Por favor, chequea qué versión de Maven debes utilizar (depende de la versión de Alfresco que estés usando). En mi caso, como es un Alfresco 4.2 voy a utilizar la SDK 1.1.x

4

Nota: Información extraída de la documentación oficial de Alfresco (aquí)

Pre-requisitos:

  1. Este tutorial se ha realizado con un eclipse Kepler (también he trabajado con Juno, Luna y no he tenido problema alguno).
  2. Necesitarás tener instaladas estas extensiones en tu Eclipse: Maven y slf4j
  3. Para eso, en Eclipse ve a Help > install new Software:
 
  •  Pincha en “Add..” y, uno a uno, añade estas dos utilidades a Aclipse, primero el slf4j y a continuación Maven:
 
  Añade un nombre, por ejemplo slf4j, y la url que ves en la parte superior y a continuación busca el paquete slf4j-api
 
Añade un nombre, por ejemplo m2e, y la url que véis en la parte superior
  • Finalmente, estos son los plugins que yo tengo en mi eclipse:
 
  •  Y listo, ya está todo lo necesario para empezar a configurar nuestro proyecto.

¡Manos a la obra!

  1. File > New > Other
  2. Escribimos “Maven” y seleccionamos “Maven Project”
    1
  3. Siguiente
  4. En la sección de “Archetype” seleccionamos Configure… E Introducimos los siguientes datos:Catalog File:https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml
    Description: Alfresco Public Catalog
    3
  5. Hacemos click en “Apply” y “OK”
  6. Seleccionamos en “Catalog” el que acabamos de crear. En mi caso como voy a utilizar Alfresco 4.2.f voy a escoger el siguiente Archetype:Group ID: org.alfresco.maven.archetype
    Artifact ID: alfresco-allinone-archetype
    Version: 1.1.15
  7. A continuación especificaré los siguientes detalles de mi proyecto:
    Opciones proyecto Maven
  8. Pulsamos “Finish”

Llegados a este punto, Maven empezará a descargarse un montón de cosas. En realidad lo que está haciendo es descargarse todo lo necesario para poder trabajar con nuestro proyecto, ello incluye: Alfresco, Share, Solr y base de datos temporal.

Una vez tenemos nuestros proyectos vamos a proceder a configurar las tareas por las cuales lanzaremos nuestro Alfresco. Para ello deberemos seguir los siguientes pasos:

  1. Pinchamos en el botón Play > Run Configurations
  2. A la izquierda, sobre la opción de “Maven Build” seleccionamos con el botón derecho del ratón y hacemos click en “New”. Debemos crear 2 lanzadores: Uno para el repositorio y otro para Share.Opciones lanzador eclipse
    • Opciones generales para Repositorio:
      Opciones lanzador eclipse

      Name: Nombre siginifcativo de esta tarea que estamos configurando.
      Base directory: ${workspace_loc:/nombre_workspace_proyecto}
      Goals: install Profiles: amps-to-war
      Parameter ports: Vacío tomará la configuración por defecto, sino puede rellenarse con los siguientes valores (o los que se deseen):
      Name maven.tomcat.port y Value: 8080

    • Opciones Generales Share:
      Opciones lanzador eclipse

      Name: Nombre siginifcativo de esta tarea que estamos configurando.
      Base directory: ${workspace_loc:/nombre_workspace_proyecto}
      Goals: install Profiles: amps-to-war
      Parameter ports: Name maven.tomcat.port y Value: 8081

    • JVM que le asignaremos a nuestro proyecto para el repositorio: Con esto principalmente evitaremos los dichosos errores en Java Heap o PermGerm

      Opciones lanzador eclipseVM Arguments: Esta configuración depende de cuánta RAM podáis asignarle a Alfresco, en mi caso tengo 8 gigas de RAM en el ordenador, por lo que le asignaré 2 gigas a Alfresco y otros dos a Share Valor:
      -XXMaxPermSize=256m -Xms128m -Xmx2G -XX:+DisableExplicitGC

      • JVM Share (porque también debemos asignarle valores de Java para que arranque correctamente y así evitemos errores):

        Opciones lanzador eclipseValor: -XXMaxPermSize=256m -Xms128m -Xmx2G -XX:+DisableExplicitGC

        Estos valores dependerán siempre de la RAM que tengas en tu ordenador y de la disponible una vez haya cargado sistema operativo y servicios. Los valores se basan en 4 gigas de RAM, para un entorno de desarrollo incluso recomendaría 4 gigas en vez de dos en la Xmx, pero de momento nos podemos apañar con ésto :-)

  3. Y listo, ya tenemos todo lo necesario. Para arrancar nuestro desarrollo pinchamos en el icono de la barra de utilidades verde, nos aparecerá un listado con todos los lanzadores que hemos creado:
    12.eclipse opciones
  4. Simplemente clickeamos en el que queramos y listo teniendo en cuenta que el orden para arrancarlo es: Primero Repo y a continuación Share.

Y listo, con esto tendremos nuestro proyecto con Maven preparado para realizar nuestras extensiones y desarrollo.

Links que os pueden ser de utilidad:

  • Para más información acerca sobre Arqueotipos, aquí.
  • Proyecto oficial de sdk de Alfresco en Maven, aquí.

Como siempre, espero que os haya servido de ayuda :-)

¡Un saludo!

Deja un comentario