Show Menu
SUJETS×

Gestion des packages à l’aide de Maven

Le module externe Content Package Maven permet d’intégrer des tâches de gestion de packages dans vos projets Maven. Les paramètres et les goals du module externe permettent d’automatiser de nombreuses tâches qui sont normalement effectuées sur la page Package Manager ou la ligne de commande FileVault :
  • Création de packages à partir des fichiers du système de fichiers
  • Installation et désinstallation de packages sur le serveur CRX ou CQ
  • Création de packages déjà définis sur le serveur
  • Obtention de la liste des packages installés sur le serveur
  • Suppression d’un package du serveur

Ajout du module externe Content Package Maven au fichier POM

Pour utiliser le module externe Content Package Maven, ajoutez l’élément plugin suivant dans l’élément build du fichier 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>

Pour que Maven puisse télécharger le module externe, utilisez le profil fourni dans la section Obtention du module externe Content Package Maven de cette page.

Version du module externe Content Package Maven :

Les goals et les paramètres de goal fournis par le module externe Content Package sont décrits dans les sections qui suivent. Les paramètres qui sont décrits dans la section Paramètres communs peuvent être utilisés pour la plupart des goals. Les paramètres qui s’appliquent à un goal sont décrits dans la section consacrée au goal en question.
Préfixe du module externe
Le préfixe du module externe est content-package. Utilisez ce préfixe pour exécuter un goal à partir de la ligne de commande, comme illustré ci-après.
mvn content-package:build

Préfixe des paramètres
Sauf indication contraire, les goals et les paramètres du module externe utilisent le préfixe vault, comme illustré ci-après.
mvn content-package:install -Dvault.targetURL="https://192.168.1.100:4502/crx/packmgr/service.jsp"

Proxys
Les goals qui utilisent des proxys pour le serveur CRX ou CQ ont recours à la première configuration de proxy valide dans les paramètres Maven. Si aucune configuration de proxy n’est trouvée, aucun proxy n’est utilisé. Reportez-vous au paramètre useProxy dans la section Paramètres communs.

Paramètres communs

Les paramètres contenus dans le tableau ci-après sont communs à tous les goals, sauf si une note indique le contraire dans la colonne Goals.
Nom Type Requis Valeur par défaut Description Goals
failOnError booléen Non false La valeur true entraîne l’échec de la création lorsqu’une erreur se produit. La valeur false entraîne la création à ignorer l’erreur. Tous les goals, à l’exception de package.
nom est Chaîne build : Oui installation : Non rm : Oui Créer : Aucune valeur par défaut. install : Valeur de la propriété artifactId du projet expert. Nom du package sur lequel exécuter une action. Tous les goals, à l’exception de Is.
password Chaîne Oui admin Mot de passe utilisé pour l’authentification auprès du serveur CRX. Tous les goals, à l’exception de package.
serverId Chaîne Non ID du serveur à partir duquel récupérer le nom d’utilisateur et le mot de passe pour l’authentification. Tous les goals, à l’exception de package.
targetURL Chaîne Oui http://localhost:4502/ crx/packmgr/ service.jsp URL de l’API du service HTTP du gestionnaire de packages CRX. Tous les goals, à l’exception de package.
timeout int Non 5 Délai de connexion, exprimé en secondes, pour communiquer avec le service du gestionnaire de packages. Tous les goals, à l’exception de package.
useProxy booléen Non true Détermine si les configurations de proxy du fichier des paramètres Maven doivent être utilisées ou non. A value of true causes the use of the first active proxy configuration found to proxy requests to the package manager. La valeur false entraîne la non-utilisation d’un proxy. Tous les goals, à l’exception de package.
userId Chaîne Oui admin Nom d’utilisateur pour l’authentification auprès du serveur CRX. Tous les goals, à l’exception de package.
verbose booléen Non false Active ou désactive la journalisation documentée. La valeur true l’active. Tous les goals, à l’exception de package.

build

Crée un package de contenu déjà défini sur une instance AEM.
Il n’est pas nécessaire que le goal soit exécuté dans un projet Maven.

Paramètres

Tous les paramètres du goal build sont décrits dans la section  Paramètres communs .

Exemple

L’exemple suivant crée le package workflow-mbean installé sur l’instance AEM avec l’adresse IP 10.36.79.223. L’objectif est exécuté à l’aide de la commande suivante :
mvn content-package:build

Le fichier POM ci-dessous est situé dans le répertoire actuel de l’outil de ligne de commande. Il spécifie le nom du package et l’URL du service du 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</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

Installe un package dans le référentiel L’exécution de ce goal ne nécessite pas de projet Maven. Le goal est lié à la phase d’installation du cycle de vie de création Maven.

Paramètres

In addition to the following parameters, see the descriptions in the Common Parameters section.
Nom Type Requis Valeur par défaut Description
artifact Chaîne Non Valeur de la propriété artifactId du projet Maven. Chaîne au format groupId:artifactId:version[:packaging].
artifactId Chaîne Non ID de l’artifact à installer.
groupId Chaîne Non groupId de l’artifact à installer.
install booléen Non true Détermine si le package doit être décompressé automatiquement lorsqu’il est téléchargé. La valeur true décompresse le package. La valeur false ne décompresse pas le package.
localRepository org.apache.maven. artifact. repository. ArtifactRepository Non Valeur de la variable système localRepository. Référentiel Maven local. Vous ne pouvez pas configurer ce paramètre à l’aide de la configuration du module externe. La propriété système est toujours utilisée.
packageFile java.io.File Non artifact principal défini pour le projet Maven. Nom du fichier de package à installer.
packaging Chaîne Non zip Type de package de l’artifact à installer.
pomRemoteRepositories java.util.List Oui Valeur de la propriété remoteAtifactRepositories définie pour le projet Maven. Cette valeur ne peut pas être configurée à l’aide de la configuration du plugin. La valeur doit être spécifiée dans le projet.
project org.apache.maven. project.MavenProject Oui Projet pour lequel le plugin est configuré. Projet Maven. Le projet est implicite, car il contient la configuration du module externe.
repositoryId (POM) repoID (ligne de commande) Chaîne Non temp ID du référentiel duquel est récupéré l’artifact. Dans le code POM, utilisez repositoryID. Dans une ligne de commande, utilisez repoID.
repositoryUrl (POM) repoURL (ligne de commande) Chaîne Non URL du référentiel duquel est récupéré l’artifact. Dans le code POM, utilisez repositoryURL. Dans une ligne de commande, utilisez repoURL.
version Chaîne Non Version de l’artifact à installer.

Exemple

L’exemple suivant illustre la création d’un package contenant le lot OSGi workflow-mbean (voir l’exemple du goal build ), puis l’installation du package. Comme le goal install est lié à la phase d’installation du package, la commande suivante exécute le goal install :
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

Répertorie les packages qui sont déployés dans Package Manager.

Paramètres

All parameters of the ls goal are described in the Common Parameters section.

Exemple

L’exemple suivant répertorie les packages installés sur l’instance AEM avec l’adresse IP 10.36.79.223. L’objectif est exécuté à l’aide de la commande suivante :
mvn content-package:ls

Le fichier POM ci-dessous est situé dans le répertoire actuel de l’outil de ligne de commande. Il spécifie l’URL du service du 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</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

Supprime un package de Package Manager.

Paramètres

All parameters of the rm goal are described in the Common Parameters section.

Exemple

L’exemple suivant supprime le package workfow-mbean installé sur l’instance AEM avec l’adresse IP 10.36.79.223. L’objectif est exécuté à l’aide de la commande suivante :
mvn content-package:rm

Le fichier POM ci-dessous est situé dans le répertoire actuel de l’outil de ligne de commande. Il spécifie l’URL du service du package et le nom du 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</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

Désinstalle un package. Le package reste sur le serveur avec l’état désinstallé.

Paramètres

All parameters of the uninstall goal are described in the Common Parameters section.

Exemple

L’exemple suivant désinstalle le package workflow-mbean installé sur l’instance AEM avec l’adresse IP 10.36.79.223. L’objectif est exécuté à l’aide de la commande suivante :
mvn content-package:uninstall

Le fichier POM ci-dessous est situé dans le répertoire actuel de l’outil de ligne de commande. Il spécifie le nom du package et l’URL du service du 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</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

Crée un package de contenu. La configuration par défaut du goal du package comprend le contenu du répertoire dans lequel les fichiers compilés sont enregistrés. L’exécution du goal du package requiert que la phase de création de la compilation soit terminée. Le goal est lié à la phase de package du cycle de vie de création Maven.

Paramètres

In addition to the following parameters, see the description of the name parameter in the Common Parameters section.
Nom Type Requis Valeur par défaut Description
archive org.apache.maven. archiver. MavenArchiveConfiguration Non Configuration d’archive à utiliser. Voir la documentation de Maven Archiver .
builtContentDirectory java.io.File Oui Valeur du répertoire de sortie de la build Maven. Répertoire qui comporte le contenu à inclure dans le package.
dependencies java.util.List Non
embeddedTarget java.lang.String Non
embeddeds java.util.List Non
failOnMissingEmbed booléen Oui false La valeur true provoque l’échec de la génération lorsqu’un artefact incorporé est introuvable dans les dépendances du projet. Une valeur incorrecte entraîne l’ignorance de l’erreur par la génération.
filterSource java.io.File Non Fichiers qui spécifie la source du filter de l’espace de travail. Les filtres spécifiés dans le fichier de configuration et injectés via les incorporations ou les sous-packages sont fusionnés avec le contenu du fichier.
filters com.day.jcr. vault.maven.pack.impl. DefaultWorkspaceFilter Non Contient les éléments filter qui définissent le contenu du package. Lorsqu’ils sont exécutés, les filtres sont inclus dans le fichier filter.xml. Voir la section Utilisation de l’élément filters ci-dessous.
finalName java.lang.String Oui Paramètre finalName défini dans le projet Maven (phase build). Nom du fichier ZIP du package généré sans l’extension de fichier .zip.
group java.lang.String Oui Paramètre groupID défini dans le projet Maven. groupId du package de contenu généré. Cette valeur fait partie du chemin d’installation cible du package de contenu.
outputDirectory java.io.File Oui Répertoire build défini dans le projet Maven. Répertoire local dans lequel est enregistré le package de contenu.
prefix java.lang.String Non
project org.apache.maven. project.MavenProject Oui Projet Maven.
properties java.util.Map Non Autres propriétés que vous pouvez définir dans le fichier properties.xml. Ces propriétés ne peuvent pas remplacer les propriétés prédéfinies suivantes :
  • group : Utilisez le paramètre de groupe à définir
  • name : Utilisez le paramètre name pour définir
  • version : Utiliser le paramètre de version à définir
  • description : Défini à partir de la description du projet
  • groupId : groupid du descripteur de projet Maven.
  • artifactId : artifactId du descripteur de projet Maven.
  • dépendances : Utiliser le paramètre de dépendances pour définir
  • createdBy : Valeur de la propriété système user.name
  • créé : Heure système actuelle
  • requireRoot : Utiliser le paramètre requireRoot pour définir
  • packagePath : Généré automatiquement à partir du nom du groupe et du package
requiresRoot booléen Oui false Définit si le package requiert ou non root. Cela deviendra la propriété <code>requiresRoot</code> du fichier properties.xml.
subPackages java.util.List Non
version java.lang.String Oui Version définie dans le projet Maven. version du package de contenu.
workDirectory java.io.File Oui Répertoire défini dans le projet Maven (phase build). Répertoire qui comporte le contenu à inclure dans le package.

Utilisation de l’élément filters

Utilisez l’élément filters pour définir le contenu du package. Les filtres sont ajoutés à l’élément workspaceFilter du fichier META-INF/vault/filter.xml du package.
L’exemple de filtre suivant montre la structure XML à utiliser :
<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>

Mode d’importation
L’élément mode définit l’impact de l’importation du package sur le contenu du référentiel. Les valeurs suivantes peuvent être utilisées :
  • Fusionner  : le contenu du package ne se trouvant pas encore dans le référentiel est ajouté. Le contenu se trouvant dans le package et le référentiel reste inchangé. Aucun contenu n’est supprimé du référentiel.
  • ​Remplacer : Le contenu du package qui ne se trouve pas dans le référentiel est ajouté au référentiel. Le contenu du référentiel est remplacé par le contenu correspondant du package. Le contenu est supprimé du référentiel lorsqu’il n’existe pas dans le package.
  • Mettre à jour  : le contenu du package ne se trouvant pas dans le référentiel y est ajouté. Le contenu du référentiel est remplacé par le contenu correspondant du package. Le contenu existant est supprimé du référentiel.
Lorsque le filtre ne contient pas d’élément mode , la valeur replace par défaut est utilisée.

Exemple

L’exemple suivant illustre la création d’un package qui contient le lot OSGi workflow-mbean. Le fichier POM identifie le répertoire jcr_root en tant que valeur de la propriété builtContentDirectory. Le répertoire jcr_root contient le fichier JAR du lot dans la structure des dossiers qui reflète le référentiel :
jcr_root/apps/myapp/install/workflow-mbean-0.03-SNAPSHOT.jar
Comme le goal est lié à la phase de création du package, la commande suivante exécute le goal install :
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>

Instead of expressing the package goal in the plugin executions section, you can use content-package as the value of the project packaging element:
<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>

help

Paramètres

Nom
Type
Requis
Valeur par défaut
Description
detail
booléen
Non
false
Détermine si toutes les propriétés définissables doivent être affichées ou non pour chaque goal. La valeur true affiche toutes les propriétés définissables.
goal
Chaîne
Non
Nom du goal pour lequel afficher l’aide. Si aucune valeur n’est spécifiée, l’aide est affichée pour tous les goals.
indentSize
int
Non
2
Nombre d’espaces à utiliser pour la mise en retrait de chaque niveau. Si vous spécifiez une valeur, celle-ci doit être positive.
lineLength
int
Non
80
Longueur maximale d’une ligne d’affichage. Si vous spécifiez une valeur, celle-ci doit être positive.

Obtention du module externe Content Package Maven

Le module externe est disponible dans le référentiel Adobe public. Pour le télécharger, ajoutez le profil Maven suivant à votre fichier de paramètres Maven et activez-le. Lorsque vous utilisez une commande Maven, le module externe est téléchargé dans votre référentiel local, si nécessaire.
Le référentiel Adobe Public Releases ne peut pas être parcouru. L’accès à l’URL du référentiel à l’aide de votre navigateur web entraîne donc une erreur de page introuvable. Maven peut toutefois accéder aux répertoires du référentiel.
<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>

Incorporation des lots OSGi dans un package de contenu

Utilisez le module externe Content Package Maven pour incorporer des lots OSGi dans le package de contenu. Pour incorporer le lot, implémentez les configurations suivantes :
  • Le lot doit être déclaré en tant que dépendance du projet Maven.
  • La configuration du module externe référence le lot à l’aide du chemin d’accès souhaité au lot dans le package.
L’exemple POM suivant illustre la création d’un package qui contient le lot UserManager Apache Sling JCR. In the package, the bundle JAR is located in the jcr_root/apps/myapp/install folder:
<?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>

Inclusion d’une image de miniature ou d’un fichier de propriétés dans le package

Remplacez les fichiers de configuration du package par défaut afin de personnaliser les propriétés du package. Incluez, par exemple, une image miniature pour différencier le package dans Package Manager et Package Share.
Dans le package, les fichiers propres à FileVault sont situés dans le dossier /META-INF/vault. Les fichiers sources peuvent se trouver n’importe où dans le système de fichiers. Dans le fichier POM, définissez les ressources de création pour copier les fichiers sources dans target/vault-work/META-INF à des fins d’inclusion dans le package.
Le code POM suivant ajoute les fichiers du dossier META-INF de la source du projet au package :
<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>

Le code POM ci-après ajoute uniquement une image miniature au package. L’image miniature doit être appelée thumbnail.png et figurer dans le dossier META-INF/vault/definition du package. Dans cet exemple, le fichier source se trouve dans le dossier /src/main/content/META-INF/vault/definition du projet :
<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>

Using Archetypes To Generate AEM Projects

Plusieurs archétypes Maven sont disponibles pour la génération de projets AEM. Utilisez l’archetype qui correspond à vos objectifs de développement :
Le projet Apache Sling offre également des archétypes utiles dans le développement d’AEM. These are documented at https://sling.apache.org/site/maven-archetypes.html .
Chaque archetype génère les éléments suivants :
  • structure des dossiers du projet ;
  • fichiers POM ;
  • fichiers de configuration FileVault.
Les artifacts d’archetype sont disponibles dans le référentiel Maven public Adobe. Pour télécharger et exécuter un archetype, identifiez-le ainsi que le référentiel Adobe à l’aide des paramètres de la commande Maven archetype:generate :
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId={id_of_archetype} -DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Le module externe d’archetype Maven utilise le mode interactif du shell ou de l’invite de commandes pour collecter des informations sur votre projet. Les informations que vous fournissez sont utilisées pour configurer diverses propriétés de projet telles que les noms des dossiers et les ID d’artifact.
Fichiers POM
Les fichiers POM générés comprennent des commandes de compilation de code, de création de lots et de déploiement vers AEM dans des packages. The groupID , artifactId , version , and name properties of the Maven project are automatically populated using the values that you provide to the Maven archetype:generate interactive prompt.
Vous pouvez modifier les valeurs par défaut suivantes dans le fichier pom.xml généré :
  • The CQ server name or IP address: The default value is localhost . The crx.host element below project/properties contains this value.
  • Numéro de port du serveur CQ : la valeur par défaut est 4502 . The crx.port element below project/properties contains this value.
  • du module externe Content Package Maven : utilisez la version la plus récente comme contenu de l’élément version version pour le module externe avec artifactId défini sur content-package-maven-plugin . La valeur par défaut est 0.0.24 .
Utilisation des archetypes
  1. Dans une fenêtre shell ou une invite de commandes, saisissez la commande archetype:generate Maven. Lorsque vous y êtes invité, fournissez les valeurs des paramètres restants.
    Pour plus d'informations sur chaque paramètre, reportez-vous à la section correspondant au type d'archétype utilisé.
  2. Utilisez un éditeur de texte pour ouvrir le fichier pom.xml et modifier les valeurs par défaut selon vos besoins.
  3. Remplissez les dossiers générés avec des ressources.
  4. Saisissez la mvn clean install commande.

simple-content-package-archetype

Crée un projet expert qui permet d’installer des ressources pour une application AEM simple. The folder structure is that used below the /apps folder of the AEM repository. Le POM définit les commandes permettant de compresser les ressources que vous importez dans les dossiers et d’installer les packages sur l’instance AEM.
Propriétés de lot archetype :
  • Group ID: com.day.jcr.vault
  • Artifact ID: simple-content-package-archetype
  • Version: 1.0.2
  • Référentiel: adobe-public-releases
Commande Maven :
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Paramètres d’archetype :
  • groupId : ID de groupe du module de contenu généré par Maven. Cette valeur est automatiquement utilisée dans le fichier POM.
  • artifactId : nom du module de contenu. Cette valeur est également utilisée en tant que nom du dossier de projet.
  • version : version du module de contenu.
  • package : cette valeur n’est pas utilisée pour simple-content-package-archetype.
  • appsFolderName : nom du dossier sous /apps.
  • artifactName : description du module de contenu.
  • packageGroup : nom du groupe du module de contenu. Cette valeur configure le paramètre group du goal package du module externe Content Package.
Structure des dossiers :
${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

Effectue les mêmes tâches que simple-content-package-archetype, télécharge également un artifact d’un référentiel Maven public et l’inclut.
Propriétés de lot archetype :
  • Group ID: com.day.jcr.vault
  • Artifact ID: simple-content-package-with-embedded-archetype
  • Version: 1.0.2
  • Référentiel: adobe-public-releases
Commande Maven :
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-with-embedded-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Paramètres d’archetype :
  • groupId : ID de groupe du module de contenu généré par Maven. Cette valeur est automatiquement utilisée dans le fichier POM.
  • artifactId : nom du module de contenu. Cette valeur est également utilisée en tant que nom du dossier de projet.
  • version : version du module de contenu.
  • package : ce paramètre n’est pas utilisé.
  • appsFolderName : nom du dossier sous /apps.
  • artifactName : description du module de contenu.
  • embeddedArtifactId : ID de l’artifact à incorporer dans le module de contenu.
  • embeddedGroupId : ID de groupe de l’artifact à incorporer.
  • embeddedVersion : version de l’artifact à incorporer.
  • packageGroup : nom du groupe du module de contenu. Cette valeur configure le paramètre group du goal package du module externe Content Package.
Structure des dossiers :
${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

Crée un projet expert qui inclut la structure de dossiers pour le développement d’une application AEM et l’installation de ressources sur le serveur.
Le dossier bundle contient la structure des dossiers qui stocke les fichiers sources Java et JUnit que vous développez. Le fichier pom.xml contenu dans ce dossier crée le lot OSGi. Les valeurs suivantes du fichier POM identifient l’artifact et le lot :
  • artifactID: ${artifactID}-bundle .
  • Bundle-SymbolicName: ${groupId}.${artifactId}-bundle .
${artifactID} et ${groupId} sont les valeurs que vous fournissez pour ces paramètres lors de l’exécution des archétypes.
The content folder contains the resources that are installed to the AEM instance. The value of artifactID is ${artifactID}multimodule-bundle .
Le dossier parent contient le fichier POM parent qui gère les modules externes et les dépendances Maven.
Propriétés de lot archetype :
  • Group ID: com.day.jcr.vault
  • Artifact ID: multimodule-content-package-archetype
  • Version: 1.0.2
  • Référentiel: adobe-public-releases
Commande Maven :
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=multimodule-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Paramètres d’archetype :
  • groupId : ID de groupe du module de contenu généré par Maven. Cette valeur est automatiquement utilisée dans le fichier POM.
  • artifactId : nom du module de contenu. Cette valeur est également utilisée en tant que nom du dossier de projet.
  • version : version du module de contenu.
  • package : cette valeur n’est pas utilisée pour multimodule-content-package-archetype.
  • appsFolderName : nom du dossier sous /apps.
  • artifactName : description du module de contenu.
  • packageGroup : nom du groupe du module de contenu. Cette valeur configure le paramètre group du goal package du module externe Content Package.
Structure des dossiers :
${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