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

Comenzando con Maven Alfresco SDK parte 2

Publicado en el grupo Random-ES

Primeros pasos con el SDK de Alfresco Maven

Jeff Potts, enero de 2014 <= ​​Parte 1
  • Trabajamos con tu proyecto en el IDE
  • Comprender la estructura del proyecto.
  • Creando un proyecto adaptado para el acceso Compartir
  • Dependencias Generales del Proyecto
  • Objetivo de guerra
  • Intentemos esto: crear un proyecto compartido usando un arquetipo
  • Comprender la estructura del directorio Share Access
  • Lanzamiento de pruebas internas en Share
  • Gestión de dependencia
  • Otros temas para estudio independiente.
  • Dónde encontrar más información

Trabajamos con tu proyecto en el IDE

Esto no es necesario, pero mucha gente prefiere trabajar en un IDE al configurar Alfresco. Cualquier IDE hará esto, pero uno de los más populares es Eclipse, así que veamos cómo funciona.
Estoy usando la versión Kepler de Eclipse Java EE IDE para desarrolladores web. Viene con soporte Maven incorporado.
Para abrir el proyecto creado, haga lo siguiente:
  • Archivo, Importación, Maven, Proyectos Maven existentes. Haga clic en Siguiente.
    Comenzando con Maven Alfresco SDK parte 2 - 1
  • Especifique el directorio que contiene el directorio someco-mvn-tutorial-repo. Eclipse comprobará este directorio y mostrará su proyecto en la lista de proyectos. Asegúrese de que la casilla de verificación junto al nombre del proyecto esté seleccionada y haga clic en Siguiente.
    Comenzando con Maven Alfresco SDK parte 2 - 2
  • Eclipse mostrará la configuración del panel de complementos de Maven. Puedes ignorarlo con seguridad ahora. Haga clic en Finalizar.
    Comenzando con Maven Alfresco SDK parte 2 - 3
El proyecto ahora se importa a su espacio de trabajo de Eclipse.
En el panel Marcadores puede ver una lista de problemas de Maven que dice: "La ejecución del complemento no está cubierta por la configuración del ciclo de vida".
Maven tiene problemas con los complementos Maven tiene problemas con los complementos (set-version)
Para solucionar:
  1. Haga clic derecho en el error y seleccione "Solución rápida".
  2. Seleccionar "Marcar permanentemente la versión del conjunto de objetivos en pom.xml como ignorada en la compilación de Eclipse". Listo.
  3. Seleccione la ubicación donde se encuentra su POM (el mío es com.someco: someco-mvn-tutorial-repo: 1.0-SNAPSHOT) y haga clic en Aceptar.
Después de reconstruir el proyecto, es posible que vea uno de los problemas más recientes: "La configuración del proyecto no está actualizada con pom.xml". Para corrección:
  1. Haga clic derecho en el proyecto y seleccione Maven, Actualizar proyecto.
  2. Asegúrese de que el proyecto esté seleccionado y haga clic en Aceptar.
Ahora Eclipse probablemente esté contento y los únicos errores deberían deberse a advertencias sobre algunas importaciones de Java no utilizadas.

Comprender la estructura del proyecto.

La estructura de directorios de su proyecto es un poco más agradable de explorar en su IDE. Veamos qué tenemos aquí.
  • pom.xml En la raíz del proyecto verás pom.xml. Le dice a Maven todo lo que necesita saber sobre su proyecto. ¿Recuerdas algunas configuraciones que olvidaste al crear un proyecto a partir de una plantilla? Puede realizar cambios en la configuración aquí. Por ejemplo, la versión 1.1.1 del arquetipo le permite trabajar con la versión 4.2.e de Alfresco Community Edition. Si desea trabajar con una versión diferente, simplemente cambie algunas propiedades y dígale a Maven que las actualice y él se encargará del resto.
  • src/main/java Aquí es donde debes crear tus propios paquetes para organizar tu código Java. Cosas como clases de ejecución de acciones personalizadas, comportamientos personalizados y controladores Java para scripts web están aquí. Si no sabes qué es todo esto, no te preocupes, hay tutoriales disponibles aquí . Estos archivos eventualmente se colocarán en un JAR. Cuando AMP se instala en Alfresco WAR, el JAR estará dentro de WEB-INF/lib .
  • src/test Todo lo que hay dentro de src/test está relacionado con la ejecución de pruebas. Las pruebas unitarias en sí se encuentran en src/test/java . Todos los recursos necesarios para estas clases estarán en src/test/resources. Dentro de src/test/properties/local verá un archivo alfresco-global.properties . Si ya sabes algo sobre Alfresco, sabrás que se utiliza para configurar el servidor de Alfresco. En este caso, esto sólo se utiliza para ejecutar el servidor integrado, con fines de prueba.
  • src/main/amp Todo lo demás está en algún lugar de esta parte del proyecto. La estructura de AMP está tan bien documentada que no quiero duplicarla aquí. Sólo señalaré los puntos principales:
    • El archivo module.properties le dice a Alfresco lo que necesita saber sobre AMP, como su ID, versión, versión mínima y máxima de Alfresco requerida para ejecutar AMP y cualquier otro AMP con las mismas dependencias.
    • El directorio config/alfresco/module/someco-mvn-tutorial-repo es el corazón de AMP. El lugar donde colocará las configuraciones del archivo Spring XML, el modelo de contenido de los archivos XML y la configuración de la interfaz de usuario. Como verá más adelante, prefiero separar subdirectorios para cada una de estas cosas.
    • Si su módulo incluye scripts web o flujos de trabajo, no están contenidos en el directorio de módulos. En su lugar, se encuentran en config/alfresco/extension/templates/webscripts y config/alfresco/extension/workflows .
    • Su módulo puede incluir recursos del cliente que deben implementarse en la raíz de la aplicación web. Están ubicados en src/main/amp/web en los directorios css, jsp, scripts e imágenes.
Deberías registrar todo este proyecto en el control de código fuente. Es posible que desee configurar su cliente de control de versiones para ignorar el directorio de destino y el directorio alf_data_dev.
Ahora comprende cómo crear un proyecto para la configuración a nivel de repositorio. Echemos un vistazo al nivel Compartir. Como parte de esto, mostraré otra opción para crear un proyecto sin salir de Eclipse.

Creando un proyecto adaptado para el acceso Compartir

En primer lugar, debe comprender que la estructura de un proyecto creado a nivel de repositorio es exactamente la misma que la de un proyecto para una capa de acceso compartido adaptada. En el futuro del SDK de Alfresco Maven, hay dos cosas que distinguen al proyecto Share: las dependencias del proyecto y el AMP WAR que se integrará.

Dependencias Generales del Proyecto

Detengámonos un momento y hablemos de la gestión de la dependencia. Por el momento, la implementación es tal que, de forma predeterminada, el arquetipo configurado en el proyecto pom.xml utiliza las dependencias del artefacto del repositorio alfresco. Los proyectos compartidos no tienen esta dependencia. El hecho es que muchos proyectos compartidos no utilizan Java en absoluto. Ahora editemos pom.xml y eliminemos las dependencias del repositorio de alfresco. Esto hará que los componentes de demostración y las clases de prueba asociadas generen un error al compilar. Se pueden quitar.

Objetivo de guerra

Otra cosa que distingue al proyecto Share es la WAR en la que se implementa AMP. En lugar de WAR al aire libre, aquí debe implementar Share WAR. Esto se configura en la propiedad alfresco.client.war en su pom.xml. De forma predeterminada, esto está configurado en "al aire libre". Para un proyecto Compartir, debe reemplazarlo por "compartir".

Intentemos esto: crear un proyecto compartido usando un arquetipo

Creemos un nuevo proyecto con Configuración general. Puede ir a la línea de comando y ejecutar el mismo comando de arquetipo que ejecutó antes, menos el nuevo artefactoId, y luego cambiar la propiedad alfresco.client.war a "compartir". Si no estás usando Eclipse, hazlo ahora y salta la siguiente sección.
Otra opción es configurar Eclipse para que pueda crear un nuevo proyecto de Alfresco utilizando el SDK de Alfresco Maven sin salir del IDE. Vamos a hacer eso.
  1. Archivo, nuevo proyecto Maven.
  2. Seleccione el directorio que contiene el directorio del proyecto "repo", haga clic en Siguiente.
    Comenzando con Maven Alfresco SDK parte 2 - 4
  3. Haga clic en Configurar y podremos agregar el directorio de Alfresco a la lista.
    Comenzando con Maven Alfresco SDK parte 2 - 5
  4. Haga clic en Agregar catálogo remoto
  5. Seleccione "https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml" como archivo de catálogo. Seleccione la descripción "Arquetipos de Alfresco". Luego, haga clic en Aceptar y en Aceptar nuevamente más cerca del panel de Preferencias.
    Comenzando con Maven Alfresco SDK parte 2 - 6
  6. Ahora seleccione "Arquetipos de Alfresco" en el directorio y verá varios arquetipos en la lista.
  7. Seleccione "org.alfresco.maven.archetype" y aparecerán los mismos dos arquetipos en el filtro que al comienzo del tutorial.
  8. Seleccione alfresco-amp-archetype y haga clic en Siguiente.
    Comenzando con Maven Alfresco SDK parte 2 - 7
  9. Seleccione "com.someco" como groupId, "someco-mvn-tutorial-share" como artefactoId y cambie alfresco_target_amp_client_war a "share". Haga clic en Finalizar.
    Comenzando con Maven Alfresco SDK parte 2 - 8
Su proyecto Compartir ahora está en el espacio de trabajo. La próxima vez que cree un nuevo proyecto utilizando el arquetipo, necesitará menos pasos porque no necesitará agregar un directorio.

Comprender la estructura del directorio Share Access

Como mencioné anteriormente, la estructura de este proyecto es exactamente la misma que la de nuestro proyecto de repositorio. La única diferencia es que en el proyecto de repositorio, cosas como los scripts web se encuentran dentro de src/main/amp/config/alfresco/extension/templates/webscripts. En el proyecto General estarán en src/main/amp/config/alfresco. /extensión-web/sitio-webscripts.

Lanzamiento de pruebas internas en Share

A menudo trabajará en ambos niveles de configuración al mismo tiempo. Su nivel General necesita un depósito de mensajes. Una forma de hacer esto es decirle a Maven que inicie su proyecto de repositorio usando:
cd someco-mvn-tutorial-repo
prueba de integración mvn -Pamp-to-war
Y luego ejecute su proyecto Compartir usando:
cd someco-mvn-tutorial-compartir
prueba de integración mvn -Pamp-to-war -Dmaven.tomcat.port=8081
Una vez que ambos servidores estén activos, puede abrir http://localhost:8081/share e iniciar sesión para probar su módulo.

Gestión de dependencia

Lo bueno de Apache Maven es que administra las dependencias de su proyecto por usted. Todo lo que necesitas hacer es informarle a Maven sobre ellos configurando tu pom.xml. De forma predeterminada, el SDK de Alfresco Maven crea dos dependencias para su proyecto: alfresco-repository y junit.
Como escribí anteriormente, el proyecto Alfresco Share no depende del repositorio de Alfresco, por lo que para el proyecto someco-mvn-tutorial-share, estas dependencias se pueden eliminar. Pero, ¿qué pasa si quiero incluir algunas cosas de Java en mi proyecto Share, como scripts web basados ​​en Java? En este caso, necesitamos agregar dependencias.
Los scripts web pueden ejecutarse en cualquier nivel. Si escribe scripts web basados ​​en Java en su proyecto de repositorio, la clase se creará porque las dependencias del artefacto del repositorio alfresco a su vez dependen del artefacto spring-webscripts. Puede ver esto si abre la Jerarquía de dependencias en Eclipse en su archivo pom.xml:
Jerarquía de dependencia en Eclipse
Jerarquía de dependencias en Eclipse Otra opción. Puede ver la jerarquía de dependencia ejecutando:
dependencia mvn: lista
Entonces, para agregar scripts web basados ​​en Java a su proyecto Share, necesitamos agregar spring-webscripts como dependencia. Puedes hacer esto editando pom.xml de esta manera:
<dependencia>
    <groupId>org.springframework.extensions.surf</groupId>
    <artifactId>scripts web de primavera</artifactId>
    <versión>1.2.0-M14</versión>
    <ámbito>proporcionado</ámbito>
</dependencia>
Ahora los scripts web basados ​​en Java podrán encontrar su clase principal: DeclarativeWebScript.
Quizás se pregunte cómo supo que la clase DeclarativeWebScript estaba incluida en el artefacto spring-webscripts. Bueno, por ejemplo, habiéndolo encontrado yendo a http://artifacts.alfresco.com . Puedes buscar por clase y se te mostrarán todos los artefactos que la contienen.

Otros temas para estudio independiente.

Ahora sabe cómo utilizar el SDK de Alfresco Maven para crear proyectos y como repositorio de Alfresco y configurar Alfresco Share. Si es nuevo en el desarrollo de Alfresco, espero que esté de acuerdo en que es muy fácil armar un proyecto para comenzar. Si ya se ha familiarizado con Alfresco pero todavía utiliza los SDK antiguos, espero que esto le motive a cambiar al nuevo SDK para crear sus AMP.
Hay muchos temas que no se trataron en este tutorial. Te los dejo para que los explores a tu propia discreción. Éstos son algunos de ellos:
  • El SDK de Alfresco Maven admite la recarga dinámica de clases cuando se utiliza junto con una herramienta llamada JRebel .
  • Este tutorial cubre el arquetipo de AMP. Pero Alfresco Maven SDK incluye otro arquetipo llamado All-in-One. Este arquetipo le ofrece una instalación completa de Alfresco que incluye SOLR.
  • Alfresco Maven SDK es compatible tanto con Community Edition como con Enterprise Edition. Si necesita ayuda para acceder a los artefactos de Enterprise Edition, póngase en contacto con el soporte de Alfresco.

Dónde encontrar más información

<= Parte 1
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION