JavaRush /Blog Java /Random-ES /Comenzando con Maven Alfresco SDK parte 1
CynepHy6
Nivel 34
Великий Новгород

Comenzando con Maven Alfresco SDK parte 1

Publicado en el grupo Random-ES

Primeros pasos con el SDK de Alfresco Maven

Jeff Potts, enero de 2014, parte 2 =>
  • Introducción
  • Conceptos básicos
  • experto apache
  • Paquetes modulares Alfresco (AMP)
  • SDK de Alfresco Maven
  • ¿Qué puedes decir sobre el antiguo SDK basado en Ant?
  • Tu primer proyecto
  • vamos a lanzarlo
  • ¿Qué era?
  • Otros comandos de compilación
  • Inicio sesión

Introducción

Este tutorial fue creado para aquellas personas que necesitan, de alguna manera, configurar Alfresco en un proyecto. Y al principio piensas: "¿Qué es esto?". Pero al final aprenderás:

  • Cómo crear un proyecto de Alfresco desde cero usando Alfresco Maven SDK
  • ¿Qué debería suceder dependiendo de su configuración?
  • Cómo crear y ejecutar una prueba
  • Cómo crear un artefacto adecuado para insertar o compartir con la comunidad

Este tutorial debe considerarse un punto de partida antes de pasar a un aprendizaje más detallado sobre aspectos como el modelado de contenido, la personalización de acciones y comportamientos, flujos de trabajo adicionales o scripts web.

Antes de comenzar, una breve digresión: casi siempre hay muchos caminos alternativos hacia una solución. En este tutorial te llevaré de la forma más sencilla y directa, una ruta segura que te ayudará a descubrirlo más rápido. Luego podrás cambiar algunas cosas o explorar otras rutas si quieres.

Conceptos básicos.

No necesita saber demasiado sobre Maven, Alfresco o por qué es necesario este SDK antes de comenzar a usarlo, pero algunos conocimientos pueden ayudar de alguna manera, así que permítame explicarle rápidamente los conceptos básicos.

experto apache

Apache Maven es una herramienta de gestión de compilaciones. Tiene muchas características, pero la principal es que ahorra tiempo al determinar en qué dependencias (y dependencias de dependencias) se basa su proyecto. Maven puede recuperar y almacenar en caché estas dependencias por usted. Si alguna vez ha pasado tiempo tratando de descubrir qué archivo JAR viene después de qué archivo JAR, entonces la utilidad de dicha herramienta es obvia.

Paquetes modulares Alfresco (AMP)

AMP es un archivo ZIP con una estructura de directorios que sigue ciertas convenciones. Los archivos AMP se utilizan para compartir e implementar fácilmente configuraciones en la plataforma Alfresco. Si su proyecto necesita crear configuraciones personalizadas a nivel de repositorio (aplicación web/alfresco), entonces cree un "repositorio" de AMP. Si su proyecto necesita crear configuraciones en el nivel Compartir (aplicación web/compartir), cree un AMP "compartido". Es bastante típico en un proyecto que cuando se requieren cambios en ambos niveles, se crean dos AMP.

SDK de Alfresco Maven

Los programadores de hoy están acostumbrados a marcos potentes en los que un directorio vacío se llena completamente de archivos en un minuto y al momento siguiente su proyecto está listo para iniciarse. ¿Por qué los desarrolladores de Alfresco deberían conformarse con menos?

El objetivo del SDK basado en Maven es crear las condiciones más simples posibles para iniciar el desarrollo de Alfresco. El SDK consta de una plantilla de proyecto (un "arquetipo" en la terminología de Maven) y algunas funciones integradas que le indican a Maven cómo crear AMP e implementarlos en Alfresco.

Si escribe su propia aplicación por separado de Alfresco y Share WAR, entonces no necesita el SDK de Alfresco Maven. Pero si va a escribir código que se ejecute en cualquiera de estas aplicaciones web, el SDK de Alfresco Maven es el lugar para comenzar.

¿Qué pasa con el antiguo SDK basado en Ant?

Alfresco ha proporcionado este SDK descargable desde el principio. El SDK contenía un contenedor ZIP con las dependencias necesarias para la compilación, el código fuente, la documentación y proyectos de Eclipse de ejemplo. Estos ejemplos utilizaron un constructor basado en Ant.

Este enfoque no tenía nada de malo, pero las plataformas de desarrollo han evolucionado y los SDK de Ant no han evolucionado con ellas. A día de hoy, partes de estos ejemplos están desactualizadas (API de servicios web nativos, por ejemplo, o la interfaz de usuario de Alfresco Explorer) y no hay suficientes ejemplos para partes extremadamente importantes como CMIS, scripts web y flujos de trabajo avanzados que utilizan Activiti.

Además de sus ejemplos obsoletos, se requiere el antiguo Ant SDK. Los desarrolladores están trabajando demasiado. Con Alfresco Maven SDK, ni siquiera tiene que descargar nada: simplemente crea su proyecto y comienza a codificar.

Ahora tiene un alto nivel de comprensión de Apache Maven, AMP y el SDK de Alfresco Maven. Es hora de verlo todo en acción.

Tu primer proyecto

Permítame mostrarle lo fácil que es empezar a desarrollar para Alfresco utilizando el SDK de Alfresco Maven. Antes de comenzar, debo recordarte que debes tener instalado JDK 1.7, así como también Apache Maven 3. No necesitas descargar nada más. En serio. Incluso al aire libre.

  1. Crea un directorio vacío. Pronto crearemos algunos directorios adicionales.
  2. Ahora creemos un proyecto vacío. Supongamos que desea crear algo que implementará en el repositorio de Alfresco, por ejemplo, un modelo de contenido personalizado, varias acciones de reglas personalizadas, un nuevo conjunto de scripts web o algunos procesos comerciales de Activiti. Realmente no importa. Para crear un nuevo proyecto, ejecute el comando:
    arquetipo mvn:generar\
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype:
  3. Maven trabajará un poco y eventualmente le pedirá que seleccione "arquetipo". Su selección básica de bibliotecas de plantillas de proyectos. Hay dos disponibles aquí. Uno se llama "arquetipo al aire libre" y el otro "arquetipo al aire libre". Nuestro objetivo es crear un AMP que pueda implementarse en Alfresco, por lo que el primer punto es lo que necesitamos. Escriba 1 y presione Entrar.
  4. Maven ahora te pide una versión específica de la plantilla en la que vas a basar tu proyecto. Actualmente, la última versión es 1.1.1, que es la quinta opción de la lista, así que presione 5 y Enter.
  5. Maven pregunta sobre groupId. Es similar al "paquete Java". Mis ejemplos siempre se basan en el hecho de que trabajo en una empresa ficticia llamada SomeCo, por lo que ingresaré "com.someco" aquí. Escriba algo que tenga sentido para usted y presione Entrar.
  6. El siguiente es el ID del artefacto. Piense en ello como el nombre de su proyecto. Esto también se convertirá en tu ID de AMP, así que elige algo especial. También debe agregar la línea "-repo" a su artefactoId porque este módulo se integrará en el repositorio. Llamaré al mío "someco-mvn-tutorial-repo" y presionaré Enter.

  7. En este punto, Maven le mostrará los valores que ingresó, agregará algunos otros valores predeterminados y le pedirá que confirme su selección. Si desea cambiar algo, puede seleccionar "N" y luego realizar cambios o "Y" para continuar. Siempre podrás cambiar estos valores más adelante si es necesario. Presione "Y" y luego Enter.

Maven ahora hará algo de trabajo. Cuando termine obtendrás lo siguiente:

  • Un proyecto estructurado para apoyar su desarrollo en Alfresco
  • Archivos de configuración predeterminados
  • Código Java mínimo para pruebas unitarias adicionales para comprobar que todo funciona
  • Configuración necesaria para ejecutar la instancia local de Alfresco necesaria para las pruebas
  • Archivo XML POM (Modelo de objetos de proyecto) predeterminado que le indica a Maven qué dependencias tiene su proyecto

vamos a ejecutarlo

Aún no has subido nada. Aún no has editado nada. Todo lo que hiciste fue decirle a Maven que creara un proyecto basado en la plantilla, pero tengo una gran noticia: tu proyecto está listo para ejecutarse ahora mismo.

Prueba esto:

cd someco-mvn-tutorial-repo
prueba de integración mvn -Pamp-to-war

Si observa el resultado, verá que Maven descarga todo lo necesario para compilar el proyecto, crear el AMP, implementar el AMP en Alfresco WAR, implementar Alfresco WAR en el servidor Tomcat integrado y ejecutarlo. Al final verás algo similar a:

2014-01-15 18:01:19,339 INFORMACIÓN [repo.module.ModuleServiceImpl] [localhost-startStop-1] Se encontraron 1 módulo(s).
2014-01-15 18:01:19,480 INFORMACIÓN [repo.module.ModuleServiceImpl] [localhost-startStop-1] Instalación del módulo 'someco-mvn-tutorial-repo' versión 1.0.1401151758.

Lo que significa que los módulos de su proyecto fueron generados y reconocidos por el servidor de Alfresco.

Después de ver:

16 de enero de 2014 8:38:20 a. m. org.apache.coyote.AbstractProtocol start INFORMACIÓN: Iniciando ProtocolHandler ["http-bio-8080"]

Deberías poder abrir:

http://localhost:8080/alfresco

E inicie sesión usando "admin" y "admin".

Cuando haya terminado de admirarlo, regrese a la ventana donde ejecutó su comando Maven y presione Ctrl-c para apagar el servidor.

Si recibe un error de falta de memoria al ejecutar una prueba de integración, es posible que deba ingresar algunos parámetros de JVM para las opciones de memoria en Maven. Una posible solución es configurar la variable de entorno MAVEN_OPTS. Por ejemplo, configuro mis valores en:

-Xmx1024M -XX:MaxPermSize=512m

Utilice MAVEN_OPTS para configurarlo lo suficiente como para no ver errores de desbordamiento de memoria.

¿Qué era?

Le ha pedido a Maven que ejecute una "prueba de integración" para usar el perfil "amp-to-war". Esto llevó a construir el proyecto, implementarlo como AMP en un nuevo WAR de Alfresco y ejecutar el servidor Tomcat integrado. Después de eso, pudo iniciar sesión en el antiguo cliente Alfresco Explorer y trabajar con el repositorio, probando su módulo.

Si busca en el directorio de destino, verá AMP que se creó y posteriormente se implementó en Alfresco WAR. En mi caso se llama "someco-mvn-tutorial-repo.amp". Este archivo es lo que debe darle a su equipo de TI si está listo para aplicar los cambios a nivel de repositorio al servidor Alfresco en vivo.

Otros comandos de compilación

Es posible que no siempre sea necesario iniciar el servidor de Alfresco y dejarlo en ejecución. Si solo desea compilar el proyecto, ejecutar una prueba unitaria y empaquetar AMP, puede hacer:

paquete mvn

Si desea instalar AMP dentro de su repositorio local de Maven, ejecute:

instalación mvn

Es posible que hayas notado que el proyecto incluye una prueba unitaria simple de forma predeterminada. De forma predeterminada, Maven ejecutará automáticamente pruebas unitarias en su proyecto. Puedes ver esto en la salida de la consola:

-------------------------------------------------- -----
 PRUEBAS
-------------------------------------------------- -----
Ejecutando org.alfresco.demoamp.test.DemoComponentTest

Es una buena práctica asegurarse de que su proyecto siempre incluya pruebas unitarias y las ejecute cada vez que lo compila. Muchas organizaciones utilizan herramientas de CI (integración continua) que dependen de estas pruebas. Si por alguna razón no desea ejecutar la prueba, puede omitirla, algo como esto:

instalación mvn -DskipTests=true

Si desea eliminar todo el material compilado que crea Maven y comenzar de nuevo, puede ejecutar:

mvn limpio

Si también desea eliminar la base de datos integrada, el contenido guardado de Alfresco, los índices y los registros que siempre se crean cuando se ejecutan las pruebas del servidor, puede ejecutar:

mvn limpio -Purgar

Ahora ya sabe cómo crear un nuevo proyecto de Alfresco usando una plantilla y tiene los conceptos básicos de construcción con o sin pruebas. El siguiente paso es aprender a trabajar con su proyecto en el IDE.

Inicio sesión

El archivo log4j.properties se encuentra en el directorio de módulos, el archivo log4j.properties incluye

log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level}

Probablemente querrás reemplazar esto con tu propia configuración que se adapte a la estructura de tu paquete.

Para configurar module.log.level puedes hacer esto cuando inicias Maven, así:

instalación mvn -Dmodule.log.level=DEBUG

O puedes editar pom.xml y agregar esto a las propiedades, algo como esto:

<module.log.level>DEPURACIÓN</module.log.level>

Si cambia pom.xml, AMP recibirá esta configuración cuando se cree y, posteriormente, el WAR en el que se implementa AMP escribirá registros. Esto puede (o no) ser lo que quieres. Si no está seguro, puede ser mejor configurar los valores usando la línea de comando, ya que esto evitará que accidentalmente estropee los valores en su AMP.

Arquitecto ECM


Este trabajo tiene una licencia Creative Commons Attribution-ShareAlike 3.0 Unported . Parte 2 =>
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION