Complemento Maven del paquete de contenido de Adobe

Utilice el complemento Maven del paquete de contenido de Adobe para integrar las tareas de implementación y administración de paquetes en sus proyectos de Maven.

La implementación de los paquetes construidos en AEM se realiza mediante el complemento Maven del paquete de contenido de Adobe y permite la automatización de las tareas que normalmente se realizan mediante AEM Administrador de paquetes:

  • Cree nuevos paquetes a partir de archivos en el sistema de archivos.
  • Instale y desinstale paquetes en AEM.
  • Generar paquetes que ya están definidos en AEM.
  • Obtenga una lista de paquetes instalados en AEM.
  • Elimine un paquete de AEM.

Este documento detalla cómo utilizar Maven para administrar estas tareas. Sin embargo, también es importante comprender cómo se estructuran AEM proyectos y sus paquetes.

NOTA

La creación de paquetes ahora es propiedad del plugin Apache Jackrabbit FileVault Package Maven. La implementación de los paquetes construidos en AEM es realizada por el complemento Maven del paquete de contenido de Adobe como se describe aquí.

Paquetes y la estructura del proyecto AEM

AEM como Cloud Service se adhiere a las prácticas recomendadas más recientes para la administración de paquetes y la estructura de proyectos implementadas por el último tipo de archivo del proyecto AEM.

SUGERENCIA

Para obtener más información, consulte el artículo AEM Project Structure en la documentación de AEM como Cloud Service, así como la documentación de AEM Project Archetype. Ambos son totalmente compatibles con la versión AEM 6.5.

Obtención del complemento Maven del paquete de contenido

El complemento está disponible en el Repositorio Central de Maven.

Parámetros y objetivos del complemento Maven del paquete de contenido

Para utilizar el complemento Maven del paquete de contenido, agregue el siguiente elemento de complemento dentro del elemento de compilación del archivo POM:

<plugin>
 <groupId>com.day.jcr.vault</groupId>
 <artifactId>content-package-maven-plugin</artifactId>
 <version>0.0.24</version>
 <configuration>
       <!-- parameters and values common to all goals, as required -->
 </configuration>
</plugin>

Para permitir que Maven descargue el complemento, utilice el perfil proporcionado en la sección Obtención del complemento Maven del paquete de contenido de esta página.

Objetivos del complemento Maven del paquete de contenido

Los objetivos y parámetros de objetivo que proporciona el complemento Paquete de contenido se describen en las secciones siguientes. Los parámetros que se describen en la sección Parámetros comunes se pueden utilizar para la mayoría de los objetivos. Los parámetros que se aplican a un objetivo se describen en la sección para ese objetivo.

Prefijo de complemento

El prefijo del complemento es content-package. Utilice este prefijo para ejecutar un objetivo desde la línea de comandos, como en el siguiente ejemplo:

mvn content-package:build

Prefijo de parámetro

A menos que se indique lo contrario, los objetivos y parámetros del complemento utilizan el prefijo vault , como en el siguiente ejemplo:

mvn content-package:install -Dvault.targetURL="https://192.168.1.100:4502/crx/packmgr/service.jsp"

Proxies

Los objetivos que utilizan proxies para AEM utilizan la primera configuración de proxy válida que se encuentra en la configuración de Maven. Si no se encuentra ninguna configuración de proxy, no se utiliza ningún proxy. Consulte el parámetro useProxy en la sección Parámetros comunes.

Parámetros comunes

Los parámetros de la tabla siguiente son comunes para todos los objetivos excepto cuando se indican en la columna Objetivos.

Nombre Tipo Requerido Valor predeterminado Descripción Objetivos
failOnError boolean No false Un valor de true hace que la compilación falle cuando se produce un error. Un valor de false hace que la compilación ignore el error. Todos los objetivos excepto package
name String build: Sí, install: No, rm: Sí build: Sin valor predeterminado, install: El valor de la artifactId propiedad del proyecto Maven El nombre del paquete en el que debe actuar Todos los objetivos excepto ls
password String admin La contraseña utilizada para la autenticación con AEM Todos los objetivos excepto package
serverId String No El ID de servidor desde el que se recuperarán el nombre de usuario y la contraseña para la autenticación Todos los objetivos excepto package
targetURL String http://localhost:4502/crx/packmgr/service.jsp La URL de la API de servicio HTTP del administrador de paquetes AEM Todos los objetivos excepto package
timeout int No 5 Tiempo de espera de conexión para comunicarse con el servicio del administrador de paquetes, en segundos Todos los objetivos excepto package
useProxy boolean No true Un valor de true hace que Maven utilice la primera configuración de proxy activa que se encuentra para las solicitudes de proxy al Administrador de paquetes. Todos los objetivos excepto package
userId String admin El nombre de usuario que se va a autenticar con AEM Todos los objetivos excepto package
verbose boolean No false Habilita o deshabilita el registro detallado Todos los objetivos excepto package

versión

Crea un paquete de contenido que ya está definido en una instancia de AEM.

NOTA

No es necesario ejecutar este objetivo dentro de un proyecto de Maven.

Parámetros

Todos los parámetros para el objetivo de compilación se describen en la sección Parámetros comunes.

instalar

Instala un paquete en el repositorio. La ejecución de este objetivo no requiere un proyecto Maven. El objetivo está enlazado a la fase install del ciclo vital de la compilación de Maven.

Parámetros

Además de los siguientes parámetros, consulte las descripciones en la sección Parámetros comunes.

| Nombre | Tipo | Requerido | Valor predeterminado | Descripción |
|—|—|—|—|—|—|
| artifact | String | No | El valor de la propiedad artifactId del proyecto Maven | Una cadena del formulario groupId:artifactId:version[:packaging] |
| artifactId | String | No | Ninguna | El ID del artefacto que se va a instalar |
| groupId | String | No | Ninguna | El groupId del artefacto que se va a instalar |
| install | boolean | No | true | Determina si se desempaqueta automáticamente el paquete cuando se carga |
| localRepository | org.apache.maven.artifact.repository.ArtifactRepository | No | El valor de la variable del sistema localRepository | El repositorio local de Maven que no se puede configurar usando la configuración del complemento como propiedad del sistema siempre se utiliza |
| packageFile | java.io.File | No | El artefacto principal definido para el proyecto Maven | El nombre del archivo del paquete que se va a instalar |
| packaging | String | No | zip | El tipo de embalaje del artefacto que se va a instalar |
| pomRemoteRepositories | java.util.List | Sí | El valor de la propiedad remoteArtifactRepositories que se define para el proyecto Maven | Este valor no se puede configurar con la configuración del complemento y debe especificarse en el proyecto. |
| project | org.apache.maven.project.MavenProject | Sí | El proyecto para el que está configurado el complemento | El proyecto Maven que está implícito porque el proyecto contiene la configuración del complemento |
| repositoryId (POM), repoID (línea de comandos) | String | No | temp | ID del repositorio desde el que se recupera el artefacto |
| repositoryUrl (POM), repoURL (línea de comandos) | String | No | Ninguna | La dirección URL del repositorio desde el que se recupera el artefacto |
| version | Cadena | No | Ninguna | Versión del artefacto que se va a instalar |

ls

Enumera los paquetes que se implementan en el Administrador de paquetes.

Parámetros

Todos los parámetros del objetivo ls se describen en la sección Parámetros comunes.

rm

Elimina un paquete del Administrador de paquetes.

Parámetros

Todos los parámetros del objetivo rm se describen en la sección Parámetros comunes.

desinstalar

Desinstala un paquete. El paquete permanece en el servidor en estado desinstalado.

Parámetros

Todos los parámetros del objetivo de desinstalación se describen en la sección Parámetros comunes.

paquete

Crea un paquete de contenido. La configuración predeterminada del objetivo del paquete incluye el contenido del directorio donde se guardan los archivos compilados. La ejecución del objetivo del paquete requiere que la fase de compilación se haya completado. El objetivo del paquete está enlazado a la fase del paquete del ciclo vital de la compilación de Maven.

Parámetros

Además de los siguientes parámetros, consulte la descripción del parámetro name en la sección Parámetros comunes.

Nombre Tipo Requerido Valor predeterminado Descripción
archive org.apache.maven.archiver.MavenArchiveConfiguration No Ninguna La configuración del archivo que se va a utilizar
builtContentDirectory java.io.File El valor del directorio de salida de la compilación de Maven El directorio que contiene el contenido que se va a incluir en el paquete
dependencies java.util.List No Ninguna
embeddedTarget java.lang.String No Ninguna
embeddeds java.util.List No Ninguna
failOnMissingEmbed boolean false Un valor de true hace que la compilación falle cuando no se encuentra un artefacto incrustado en las dependencias del proyecto. Un valor de false hace que la compilación ignore estos errores.
filterSource java.io.File No Ninguna Este parámetro define un archivo que especifica el origen del filtro de espacio de trabajo. Los filtros especificados en la configuración e insertados mediante emebed o subpackages se combinan con el contenido del archivo.
filters com.day.jcr.vault.maven.pack.impl.DefaultWorkspaceFilter No Ninguna Este parámetro contiene elementos de filtro que definen el contenido del paquete. Cuando se ejecuta, los filtros se incluyen en el archivo filter.xml. Consulte la sección Uso de filtros a continuación.
finalName java.lang.String El finalName definido en el proyecto Maven (fase de compilación) El nombre del archivo ZIP del paquete generado, sin la extensión de archivo .zip
group java.lang.String El groupID definido en el proyecto Maven El groupId del paquete de contenido generado que forma parte de la ruta de instalación de destino para el paquete de contenido
outputDirectory java.io.File El directorio de compilación definido en el proyecto Maven El directorio local donde se guarda el paquete de contenido
prefix java.lang.String No Ninguna
project org.apache.maven.project.MavenProject Ninguna El proyecto Maven
properties java.util.Map No Ninguna Estos parámetros definen propiedades adicionales que se pueden establecer en el archivo properties.xml. Estas propiedades no pueden sobrescribir las siguientes propiedades predefinidas: group (utilice el parámetro group para establecer), name (utilice el parámetro name para configurar), version (utilice el parámetro version para configurar), description (establecido a partir de la descripción del proyecto), groupId (groupId del descriptor del proyecto Maven), artifactId (artifactId) Descriptor de proyecto de Maven), dependencies (utilice el parámetro dependencies para establecer), createdBy (el valor de la propiedad del sistema user.name), created (la hora del sistema actual), requiresRoot (use el parámetro requiresRoot para establecer), packagePath> (generado automáticamente a partir del grupo y el nombre del paquete)
requiresRoot boolean false Define si el paquete requiere root. Esto se convertirá en la propiedad requiresRoot del archivo properties.xml.
subPackages java.util.List No Ninguna
version java.lang.String La versión definida en el proyecto Maven La versión del paquete de contenido
workDirectory java.io.File El directorio definido en el proyecto Maven (fase de compilación) El directorio que contiene el contenido que se va a incluir en el paquete

Uso de filtros

Utilice el elemento filters para definir el contenido del paquete. Los filtros se añaden al elemento workspaceFilter en el archivo META-INF/vault/filter.xml del paquete.

El siguiente ejemplo de filtro muestra la estructura XML que se va a utilizar:

<filter>
   <root>/apps/myapp</root>
   <mode>merge</mode>
       <includes>
              <include>/apps/myapp/install/</include>
              <include>/apps/myapp/components</include>
       </includes>
       <excludes>
              <exclude>/apps/myapp/config/*</exclude>
       </excludes>
</filter>
Modo de importación

El elemento mode define cómo se ve afectado el contenido del repositorio cuando se importa el paquete. Se pueden utilizar los siguientes valores:

  • Combinar: se añade el contenido del paquete que no está ya en el repositorio. El contenido que se encuentra tanto en el paquete como en el repositorio no cambia. No se elimina ningún contenido del repositorio.
  • Reemplazar: el contenido del paquete que no está en el repositorio se agrega al repositorio. El contenido del repositorio se reemplaza por contenido coincidente en el paquete. El contenido se elimina del repositorio cuando no existe en el paquete.
  • Actualización: El contenido del paquete que no está en el repositorio se agrega al repositorio. El contenido del repositorio se reemplaza por contenido coincidente en el paquete. El contenido existente se elimina del repositorio.

Cuando el filtro no contiene ningún elemento mode, se utiliza el valor predeterminado de replace.

ayuda

Parámetros

Nombre Tipo Requerido Valor predeterminado Descripción
detail boolean No false Determina si se mostrarán todas las propiedades configurables para cada objetivo
goal String No Ninguna Estos parámetros definen el nombre del objetivo para el que mostrar la ayuda. Si no se especifica ningún valor, se muestra ayuda para todos los objetivos.
indentSize int No 2 El número de espacios que se deben utilizar para la sangría de cada nivel (debe ser positivo si se define)
lineLength int No 80 La longitud máxima de una línea de visualización (debe ser positiva si se define)

Inclusión de una imagen en miniatura o un archivo de propiedades en el paquete

Reemplace los archivos de configuración de paquetes predeterminados para personalizar las propiedades del paquete. Por ejemplo, incluya una imagen en miniatura para distinguir el paquete en el Administrador de paquetes y Uso compartido de paquetes.

Los archivos de origen se pueden ubicar en cualquier lugar del sistema de archivos. En el archivo POM, defina los recursos de compilación para copiar los archivos de origen en target/vault-work/META-INF para incluirlos en el paquete.

El siguiente código POM añade los archivos de la carpeta META-INF del origen del proyecto al paquete:

<build>
    <resources>
        <!-- vault META-INF resources (thumbnail etc.) -->
        <resource>
            <directory>${basedir}/src/main/content/META-INF</directory>
            <targetPath>../vault-work/META-INF</targetPath>
        </resource>
    </resources>
</build>

El siguiente código POM añade solo una imagen en miniatura al paquete. La imagen en miniatura debe tener el nombre thumbnail.png y debe estar ubicada en la carpeta META-INF/vault/definition del paquete. En este ejemplo, el archivo de origen se encuentra en la carpeta /src/main/content/META-INF/vault/definition del proyecto:

<build>
    <resources>
        <!-- thumbnail only -->
        <resource>
            <directory>${basedir}/src/main/content/META-INF/vault/definition</directory>
            <targetPath>../vault-work/META-INF/vault/definition</targetPath>
        </resource>
    </resources>
</build>

Uso del tipo de archivo del proyecto AEM para generar proyectos de AEM

El último tipo de archivo del proyecto de AEM implementa la estructura de paquetes de prácticas recomendadas tanto para implementaciones locales como de AMS y se recomienda para todos los proyectos de AEM.

SUGERENCIA

Para obtener más información, consulte el artículo AEM Project Structure en la documentación de AEM como Cloud Service, así como la documentación de AEM Project Archetype. Ambos son totalmente compatibles con la versión AEM 6.5.

En esta página