Show Menu
TEMAS×

Administración de paquetes con Maven

Utilice el complemento Content Package Maven para integrar las tareas de administración de paquetes en sus proyectos de Maven. Los objetivos y parámetros del complemento le permiten automatizar muchas de las tareas que normalmente realizaría mediante la página Administrador de paquetes o la línea de comandos de FileVault:
  • Cree nuevos paquetes a partir de archivos del sistema de archivos.
  • Instale y desinstale paquetes en el servidor CRX o CQ.
  • Genere paquetes que ya estén definidos en el servidor.
  • Obtenga una lista de los paquetes instalados en el servidor.
  • Elimine un paquete del servidor.

Adición del complemento Maven del paquete de contenido al archivo POM

Para utilizar el complemento Maven del paquete de contenido, agregue el siguiente elemento de complemento dentro del elemento build 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 habilitar Maven para descargar el complemento, utilice el perfil proporcionado en la sección Obtención del complemento Content Package Maven 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 pueden utilizarse para la mayoría de los objetivos. Los parámetros que se aplican a un objetivo se describen en la sección correspondiente.
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 ejemplo siguiente:
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"

Sustitutos
Los objetivos que utilizan proxies para el servidor CRX o CQ 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 proxy, no se utiliza ningún proxy. Consulte el parámetro useProxy en la sección Configuración común.

Parámetros comunes

Los parámetros de la siguiente tabla son comunes a todos los objetivos excepto cuando se los indica 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 hace que false la compilación ignore el error. Todos los objetivos excepto el paquete.
name Cadena build: Sí instalación: No rm:Sí Generar: No hay valores predeterminados. install: Valor de la propiedad artifactsId del proyecto Maven. Nombre del paquete en el que se va a actuar. Todos los objetivos excepto ls.
password Cadena administrador La contraseña utilizada para la autenticación con el servidor CRX. Todos los objetivos excepto el paquete.
serverId Cadena No ID del servidor desde el que se recuperarán el nombre de usuario y la contraseña para la autenticación. Todos los objetivos excepto el paquete.
targetURL Cadena http://localhost:4502/ crx/packmgr/ service.jsp Dirección URL de la API de servicio HTTP del administrador de paquetes CRX. Todos los objetivos excepto el paquete.
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 el paquete.
useProxy boolean No verdadero Determina si se usarán configuraciones proxy desde el archivo de configuración Maven. Un valor de true provoca el uso de la primera configuración proxy activa que se encuentra en las solicitudes de proxy al administrador de paquetes. Un valor false hace que no se utilice ningún proxy. Todos los objetivos excepto el paquete.
userId Cadena administrador El nombre de usuario que se va a autenticar con el servidor CRX. Todos los objetivos excepto el paquete.
verbose boolean No false Activa o desactiva el registro detallado. Un valor de true habilita el registro detallado. Todos los objetivos excepto el paquete.

build

Crea un paquete de contenido que ya está definido en una instancia de AEM.
Este objetivo no necesita ser ejecutado dentro de un proyecto Maven.

Parámetros

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

Ejemplo

El ejemplo siguiente crea el paquete workflow-mbean que se instala en la instancia de AEM con la dirección IP 10.36.79.223. El objetivo se ejecuta con el siguiente comando:
mvn content-package:build

El siguiente archivo POM se encuentra en el directorio actual de la herramienta de línea de comandos. El POM especifica el nombre del paquete y la dirección URL del servicio de paquetes.
<project xmlns="https://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
     <plugin>
  <groupId>com.day.jcr.vault</groupId>
  <artifactId>content-package-maven-plugin</artifactId>
  <version>0.0.24</version>
  <configuration>
   <name>workflow-mbean</name>
   <failOnError>true</failOnError>
   <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
     </plugin>
 </plugins>
    </build>
</project>

install

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

Parámetros

Además de los parámetros siguientes, consulte las descripciones de la sección Parámetros Parámetros comunes comunes.
Nombre Tipo Requerido Valor predeterminado Descripción
artefacto Cadena No Valor de la propiedad artifactsId del proyecto Maven. Una cadena del formulario groupId:artiactId:version[:packing].
artiactId Cadena No ID del artefacto que se va a instalar
groupId Cadena No GroupId del artefacto que se va a instalar
instalar boolean No verdadero Determina si se desempaqueta el paquete automáticamente al cargarse. Un valor de true descomprime el paquete y false no lo descomprime.
localRepository org.apache.maven. artefacto. repositorio. ArtiactRepository No Valor de la variable de sistema localRepository. Repositorio local de Maven. No puede configurar este parámetro con la configuración del complemento. La propiedad system siempre se utiliza.
packageFile java.io.File No El artefacto principal definido para el proyecto Maven. Nombre del archivo de paquete que se va a instalar.
empaquetado Cadena No zip Tipo de embalaje del artefacto que se va a instalar
pomRemoteRepositories java.util.List Valor de la propiedad remoteActRepositories definida para el proyecto Maven. Este valor no se puede configurar con la configuración del complemento. El valor debe especificarse en el proyecto.
proyecto org.apache.maven. project.MavenProject Proyecto para el cual se configura el complemento. El proyecto Maven. El proyecto está implícito porque contiene la configuración del complemento.
repositoryId (POM) repoID (línea de comandos) Cadena No temp ID del repositorio desde el que se recupera el artefacto. En un POM, utilice repositoryID. En una línea de comandos, utilice repoID.
repositorioUrl (POM) repoURL (línea de comandos) Cadena No Dirección URL del repositorio desde el que se recupera el artefacto. En un POM, utilice repositoryURL. En una línea de comandos, utilice repoURL.
version Cadena No Versión del artefacto que se va a instalar.

Ejemplo

En el siguiente ejemplo se crea un paquete que contiene el paquete OSGi de flujo de trabajo (consulte el ejemplo del objetivo de compilación ) y luego se instala el paquete. Dado que el objetivo de instalación está enlazado a la fase de instalación del paquete, el siguiente comando ejecuta el objetivo de instalación:
mvn install

<project xmlns="https://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 
    https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.24</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

ls

Enumera los paquetes implementados en el Administrador de paquetes.

Parámetros

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

Ejemplo

En el siguiente ejemplo se muestran los paquetes instalados en la instancia de AEM con la dirección IP 10.36.79.223. El objetivo se ejecuta con el siguiente comando:
mvn content-package:ls

El siguiente archivo POM se encuentra en el directorio actual de la herramienta de línea de comandos. El POM especifica la dirección URL del servicio de paquetes.
<project xmlns="https://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
     <plugin>
  <groupId>com.day.jcr.vault</groupId>
  <artifactId>content-package-maven-plugin</artifactId>
  <version>0.0.24</version>
  <configuration>
      <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
      </plugin>
   </plugins>
     </build>
</project>

rm

Quita un paquete del Administrador de paquetes.

Parámetros

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

Ejemplo

En el ejemplo siguiente se elimina el paquete workflow-mbean que está instalado en la instancia de AEM con la dirección IP 10.36.79.223. El objetivo se ejecuta con el siguiente comando:
mvn content-package:rm

El siguiente archivo POM se encuentra en el directorio actual de la herramienta de línea de comandos. El POM especifica la dirección URL del servicio de paquetes y el nombre del paquete.
<project xmlns="https://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
     <plugin>
  <groupId>com.day.jcr.vault</groupId>
  <artifactId>content-package-maven-plugin</artifactId>
  <version>0.0.24</version>
  <configuration>
                    <name>workflow-mbean</name>
      <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
      </plugin>
   </plugins>
     </build>
</project>

uninstall

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 Parámetros comunes comunes.

Ejemplo

En el siguiente ejemplo se desinstala el paquete workflow-mbean que está instalado en la instancia de AEM con la dirección IP 10.36.79.223. El objetivo se ejecuta con el siguiente comando:
mvn content-package:uninstall

El siguiente archivo POM se encuentra en el directorio actual de la herramienta de línea de comandos. El POM especifica el nombre del paquete y la dirección URL del servicio de paquetes.
<project xmlns="https://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>
    <build>
        <plugins>
     <plugin>
  <groupId>com.day.jcr.vault</groupId>
  <artifactId>content-package-maven-plugin</artifactId>
  <version>0.0.24</version>
  <configuration>
   <name>workflow-mbean</name>
   <failOnError>true</failOnError>
   <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
     </plugin>
 </plugins>
    </build>
</project>

package

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 parámetros siguientes, consulte la descripción del name parámetro en la sección Parámetros Parámetros comunes comunes.
Nombre Tipo Requerido Valor predeterminado Descripción
archive org.apache.maven. archiver. MavenArchiveConfiguration No La configuración del archivo que se va a utilizar. Consulte la documentación de Maven Archiver .
buildContentDirectory java.io.File 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.
dependencias java.util.List No
EmbeddedTarget java.lang.String No
incrustado java.util.List No
failOnMissingEmbed boolean false Un valor true hace que la compilación falle cuando no se encuentra un artefacto incrustado en las dependencias del proyecto. Un valor false hace que la compilación ignore el error.
filterSource java.io.File No Archivo que especifica el origen del filtro de área de trabajo. Los filtros especificados en la configuración e insertados mediante emebed o subpackages se combinan con el contenido del archivo.
filtros com.day.jcr. vault.maven.pack.impl. DefaultWorkspaceFilter No Contiene elementos de filtro que definen el contenido del paquete. Cuando se ejecutan, los filtros se incluyen en el archivo filter.xml. Consulte la sección Uso de filtros a continuación.
finalName java.lang.String El valor finalName definido en el proyecto Maven (fase de compilación). Nombre del archivo ZIP del paquete generado, sin la extensión de archivo .zip.
grupo java.lang.String El groupID definido en el proyecto Maven. El groupId del paquete de contenido generado. Este valor forma parte de la ruta de instalación de destino para el paquete de contenido.
outputDirectory java.io.File Directorio de compilación definido en el proyecto Maven. El directorio local donde se guarda el paquete de contenido.
prefix java.lang.String No
proyecto org.apache.maven. project.MavenProject El proyecto Maven.
propiedades java.util.Map No Propiedades adicionales que puede establecer en el archivo properties.xml. Estas propiedades no pueden sobrescribir las siguientes propiedades predefinidas:
  • grupo: Use el parámetro de grupo para establecer
  • name: Utilice el parámetro name para establecer
  • version: Utilice el parámetro version para establecer
  • description: Se configura a partir de la descripción del proyecto
  • groupId: groupId del descriptor de proyecto de Maven
  • artiactId: artiactId del descriptor de proyecto de Maven
  • dependencias: Usar parámetro de dependencias para establecer
  • createdBy: El valor de la propiedad del sistema user.name
  • creado: Hora del sistema actual
  • requireRoot: Use el parámetro requirementsRoot para establecer
  • packagePath: Generado automáticamente a partir del nombre del grupo y del paquete
requirementsRoot boolean false Define si el paquete requiere root. Se convertirá en la propiedad <code>requirementsRoot</code> del archivo properties.xml.
subPackages java.util.List No
version java.lang.String Versión definida en el proyecto Maven Versión del paquete de contenido.
workDirectory java.io.File Directorio definido en el proyecto Maven (fase de compilación). El directorio que contiene el contenido que se incluirá en el paquete.

Uso de filtros

Utilice el elemento filters para definir el contenido del paquete. Los filtros se agregan al elemento spaceFilter del META-INF/vault/filter.xml archivo 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 mode elemento define cómo se ve afectado el contenido del repositorio cuando se importa el paquete. Se pueden utilizar los siguientes valores:
  • ​Combinar: Se agrega el contenido del paquete que no se encuentra en el repositorio. El contenido que se encuentra tanto en el paquete como en el repositorio no cambia. No se elimina contenido del repositorio.
  • ​Reemplazar: El contenido del paquete que no está en el repositorio se agrega al repositorio. El contenido del repositorio se sustituye por el contenido coincidente del 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 sustituye por el contenido coincidente del paquete. El contenido existente se elimina del repositorio.
Cuando el filtro no contiene ningún mode elemento, se utiliza el valor predeterminado de replace .

Ejemplo

En el ejemplo siguiente se crea un paquete que contiene el paquete OSGi de flujo de trabajo. El archivo POM identifica el directorio jcr_root como el valor de la propiedad buildContentDirectory. El directorio jcr_root contiene el archivo JAR del paquete en la estructura de directorio que refleja el repositorio:
jcr_root/apps/myapp/install/workflow-mbean-0.03-SNAPSHOT.jar
Dado que el objetivo está enlazado a la fase de compilación del paquete, el siguiente comando ejecuta el objetivo del paquete:
mvn package
<project xmlns="https://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 
    https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.24</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

En lugar de expresar el package objetivo en la sección del complemento executions , puede usar content-package como valor del packaging elemento del proyecto:
<project xmlns="https://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 
    https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>
  <packaging>content-package</packaging>
  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.24</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

ayuda

Parámetros

Nombre
Tipo
Requerido
Valor predeterminado
Descripción
detalle
boolean
No
false
Determina si se mostrarán todas las propiedades configurables para cada objetivo. El valor true muestra todas las propiedades configurables.
objetivo
Cadena
No
Nombre del objetivo para el cual mostrar la ayuda. Si no se especifica ningún valor, se muestra la ayuda para todos los objetivos.
indentSize
int
No
2
Número de espacios que se utilizarán para la sangría de cada nivel. Si especifica un valor, el valor debe ser positivo.
lineLength
int
No
80
Longitud máxima de una línea de visualización. Si especifica un valor, el valor debe ser positivo.

Obtención del complemento Content Package Maven

El complemento está disponible en el repositorio público de Adobe. Para descargar el complemento, agregue el siguiente perfil de Maven al archivo de configuración de Maven y actívelo. Cuando se utiliza un comando Maven, el complemento se descarga en el repositorio local si es necesario.
El repositorio de versiones públicas de Adobe no se puede explorar, por lo que la navegación a la dirección URL del repositorio mediante el navegador web produce un error No encontrado. Sin embargo, Maven puede acceder a los directorios del repositorio.
<profile>
    <id>adobe-public</id>
    <activation>
         <activeByDefault>false</activeByDefault>
    </activation>
    <properties>
         <releaseRepository-Id>adobe-public-releases</releaseRepository-Id>
         <releaseRepository-Name>Adobe Public Releases</releaseRepository-Name>
         <releaseRepository-URL>https://repo.adobe.com/nexus/content/groups/public</releaseRepository-URL>
    </properties>
    <repositories>
         <repository>
             <id>adobe-public-releases</id>
             <name>Adobe Basel Public Repository</name>
             <url>https://repo.adobe.com/nexus/content/groups/public</url>
             <releases>
                 <enabled>true</enabled>
                 <updatePolicy>never</updatePolicy>
             </releases>
             <snapshots>
                 <enabled>false</enabled>
             </snapshots>
         </repository>
     </repositories>
     <pluginRepositories>
         <pluginRepository>
             <id>adobe-public-releases</id>
             <name>Adobe Basel Public Repository</name>
             <url>https://repo.adobe.com/nexus/content/groups/public</url>
             <releases>
                 <enabled>true</enabled>
                 <updatePolicy>never</updatePolicy>
             </releases>
             <snapshots>
                 <enabled>false</enabled>
             </snapshots>
         </pluginRepository>
     </pluginRepositories>
</profile>

Incrustación de paquetes OSGi en un paquete de contenido

Utilice el complemento Maven del paquete de contenido para incrustar paquetes OSGi en el paquete de contenido. Para incrustar el paquete, implemente las siguientes configuraciones:
  • El paquete debe declararse como una dependencia del proyecto Maven.
  • La configuración del complemento hace referencia al paquete usando la ruta deseada del paquete en el paquete.
El siguiente ejemplo de POM crea un paquete que contiene el paquete UserManager de Apache Sling JCR. En el paquete, el JAR del paquete se encuentra en la jcr_root/apps/myapp/install carpeta:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" 
             xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="https://maven.apache.org/POM/4.0.0
             https://maven.apache.org/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
   <groupId>com.adobe.example.myapp</groupId>
 <artifactId>embedded-example</artifactId>
 <packaging>content-package</packaging>
 <version>1.0.0-SNAPSHOT</version>

   <build>
 <plugins>
     <plugin>
        <groupId>com.day.jcr.vault</groupId>
      <artifactId>content-package-maven-plugin</artifactId>
      <version>0.0.24</version>
      <extensions>true</extensions>
      <configuration>
   <filters>
       <filter>
    <root>/apps/myapp</root>
       </filter>
    </filters>
    <embeddeds>
       <embedded>
    <groupId>org.apache.sling</groupId>
    <artifactId>org.apache.sling.jcr.jackrabbit.usermanager</artifactId>
    <target>/apps/myproject/install</target>
        </embedded>
    </embeddeds>
       </configuration>
  </plugin> 
    </plugins>
    </build>
    <dependencies>
 <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.jcr.jackrabbit.usermanager</artifactId>
      <version>2.2.0</version>
 </dependency>
    </dependencies> 
</project>

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

Reemplace los archivos de configuración de paquete 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.
En el paquete, los archivos específicos de FileVault se encuentran en la carpeta /META-INF/vault. Los archivos de origen pueden ubicarse 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 agrega 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 sólo agrega una imagen en miniatura al paquete. La imagen en miniatura debe tener el nombre thumbnail.png y 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 De Tipos De Archivo Para Generar Proyectos De AEM

Hay varios tipos de arquetes Maven disponibles para generar proyectos de AEM. Utilice el arquetipo que se corresponda con sus objetivos de desarrollo:
El proyecto Apache Sling también ofrece arquetipos útiles para el desarrollo de AEM. Estos documentos están documentados en https://sling.apache.org/site/maven-archetypes.html .
Cada arquetipo genera los siguientes elementos:
  • Estructura de carpetas del proyecto.
  • Archivos POM.
  • Archivos de configuración de FileVault.
Los artefactos de arquetipo están disponibles en el repositorio público de Adobe Maven. Para descargar y ejecutar un arquetipo, identifique el arquetipo y el repositorio de Adobe utilizando los parámetros del comando Maven archetype:generate:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId={id_of_archetype} -DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

El complemento arquetipo Maven utiliza el modo interactivo en el shell o en el símbolo del sistema para recopilar información sobre su proyecto. La información proporcionada se utiliza para configurar diversas propiedades del proyecto, como nombres de carpetas e ID de artefactos.
Archivos POM
Los archivos POM generados incluyen comandos para compilar código, crear paquetes e implementarlos en AEM en paquetes. Las propiedades groupID , artifactId , version y name del proyecto Maven se rellenan automáticamente con los valores que proporcione al mensaje interactivo de Maven archetype:generate .
Puede que desee cambiar los siguientes valores predeterminados en el archivo pom.xml generado:
  • El nombre del servidor de CQ o la dirección IP: El valor predeterminado es localhost . El crx.host elemento siguiente project/properties contiene este valor.
  • El número de puerto del servidor CQ: El valor predeterminado es 4502 . El crx.port elemento siguiente project/properties contiene este valor.
  • Versión del complemento Content Package Maven: Utilice la versión más reciente como contenido del version elemento para el complemento con artifactId de content-package-maven-plugin . El valor predeterminado es 0.0.24 .
Uso de los arquetipos
  1. En una ventana shell o símbolo del sistema, introduzca el comando Maven archetype:generate . Cuando se le pida, proporcione valores para los parámetros restantes.
    Para obtener información sobre cada parámetro, consulte la sección correspondiente al arquetipo que está utilizando.
  2. Utilice un editor de texto para abrir el archivo pom.xml y editar los valores predeterminados según sus requisitos.
  3. Rellene las carpetas generadas con recursos.
  4. Introduzca el mvn clean install comando.

simple-content-package-archetype

Crea un proyecto concreto adecuado para instalar recursos para una aplicación sencilla de AEM. La estructura de carpetas es la que se utiliza debajo de la /apps carpeta del repositorio de AEM. El POM define comandos para empaquetar los recursos que se colocan en las carpetas e instalar los paquetes en la instancia de AEM.
Propiedades del artefacto de arquetipo:
  • ID del grupo: com.day.jcr.vault
  • ID del artefacto: simple-content-package-archetype
  • Versión: 1.0.2
  • Repositorio: adobe-public-releases
Maven, comando:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Parámetros de arquetipo:
  • groupId: GroupId del paquete de contenido que genera Maven. El valor se utiliza automáticamente en el archivo POM.
  • artiactId: Nombre del paquete de contenido. El valor también se utiliza como nombre de la carpeta del proyecto.
  • version:Versión del paquete de contenido.
  • paquete: Este valor no se utiliza para simple-content-package-archetype.
  • appsFolderName: El nombre de la carpeta debajo de /apps.
  • artiactName: Descripción del paquete de contenido.
  • packageGroup: Nombre del grupo de paquetes de contenido. Este valor configura el parámetro group para el objetivo Package del complemento Content Package Maven.
Estructura de carpetas:
${artifactId}
   |- pom.xml
   |- README.txt
   |- src
      |- main
         |- content
             |- jcr_root
                 |- apps
                     |- ${appsFolderName}
                            |- components 
                               |- .content.xml
                            |- config
                            |- install
             |- META-INF
                 |- vault
                     |- config.xml
                     |- filter.xml
                     |- nodetypes.cnd
                     |- properties.xml
                     |- definition
                        |- .content.xml

simple-content-package-with-Embedded-archetype

Realiza las mismas tareas que el simple-content-package-archetype, y también descarga e incluye un artefacto de un repositorio público de Maven.
Propiedades del paquete de arquetipos:
  • ID del grupo: com.day.jcr.vault
  • ID del artefacto: simple-content-package-with-embedded-archetype
  • Versión: 1.0.2
  • Repositorio: adobe-public-releases
Maven, comando:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-with-embedded-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Parámetros de arquetipo:
  • groupId: GroupId del paquete de contenido que genera Maven. El valor se utiliza automáticamente en el archivo POM.
  • artiactId: Nombre del paquete de contenido. El valor también se utiliza como nombre de la carpeta del proyecto.
  • version:Versión del paquete de contenido.
  • paquete: Este parámetro no se utiliza.
  • appsFolderName: El nombre de la carpeta debajo de /apps.
  • artiactName: Descripción del paquete de contenido.
  • EmbeddedArtiactId: ID del artefacto que se va a incrustar en el paquete de contenido.
  • EmbeddedGroupId: ID de grupo del artefacto que se va a incrustar.
  • EmbeddedVersion: Versión del artefacto que se va a incrustar.
  • packageGroup: Nombre del grupo de paquetes de contenido. Este valor configura el parámetro group para el objetivo Package del complemento Content Package Maven.
Estructura de carpetas:
${artifactId}
   |- pom.xml
   |- README.txt
   |- src
      |- main
         |- content
             |- jcr_root
                 |- apps
                     |- ${appsFolderName}
                            |- components 
                            |- config
                            |- install
             |- META-INF
                 |- vault
                     |- config.xml
                     |- filter.xml
                     |- nodetypes.cnd
                     |- properties.xml
                     |- definition

multimodule-content-package-archetype

Crea un proyecto dinámico que incluye la estructura de carpetas para desarrollar una aplicación de AEM e instalar recursos en el servidor.
La bundle carpeta contiene la estructura de carpetas que almacena los archivos de origen Java y JUnit que desarrolla. El archivo pom.xml de esta carpeta crea el paquete OSGi. Los siguientes valores del POM identifican el artefacto y el paquete:
  • artiactID: ${artifactID}-bundle .
  • Nombre simbólico del paquete: ${groupId}.${artifactId}-bundle .
${artifactID} y ${groupId} son los valores que se proporcionan para estos parámetros al ejecutar los arquetipos.
La content carpeta contiene los recursos instalados en la instancia de AEM. El valor de artifactsID es ${artifactID}multimodule-bundle .
La carpeta principal contiene el POM principal que administra los complementos y las dependencias de Maven.
Propiedades del paquete de arquetipos:
  • ID del grupo: com.day.jcr.vault
  • ID del artefacto: multimodule-content-package-archetype
  • Versión: 1.0.2
  • Repositorio: adobe-public-releases
Maven, comando:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=multimodule-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Parámetros de arquetipo:
  • groupId: GroupId del paquete de contenido que genera Maven. El valor se utiliza automáticamente en el archivo POM.
  • artiactId: Nombre del paquete de contenido. El valor también se utiliza como nombre de la carpeta del proyecto.
  • version:Versión del paquete de contenido.
  • paquete: Este valor no se utiliza para multimodule-content-package-archetype.
  • appsFolderName: El nombre de la carpeta debajo de /apps.
  • artiactName: Descripción del paquete de contenido.
  • packageGroup: Nombre del grupo de paquetes de contenido. Este valor configura el parámetro group para el objetivo Package del complemento Content Package Maven.
Estructura de carpetas:
${artifactId}
   |- pom.xml
   |- bundle
      |- pom.xml
      |- src
         |- main
            |- java
               |- ${groupId}
                  |- SimpleDSComponent.java
         |- test
            |- java
               |- ${groupId}
                  |- SimpleUnitTest.java
   |- content
      |- pom.xml
      |- src
         |- main
            |- content
               |- jcr_root
                  |- apps
                     |- ${appsFolderName} 
                            |- config
                            |- install
                  |- META-INF
                      |- vault
                         |- config.xml
                         |- filter.xml
                         |- nodetypes.cnd
                         |- properties.xml
                         |- definition
                            |- .content.xml