Vous consultez actuellement l'aide de la version:

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="http://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 Obligatoire Valeur par défaut Description Goals
failOnError boolean Non false La valeur true entraîne l’échec de la build lorsqu’une erreur se produit. Avec la valeur false, la build ignore l’erreur. Tous les goals, à l’exception de package.
name Chaîne build : Oui
install : Non
rm : Oui
build : pas de valeur par défaut.
install : valeur de la propriété artifactId du projet Maven
Nom du package sur lequel exécuter une action. Tous les goals, à l’exception de ls.
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 boolean Non true Détermine si les configurations de proxy du fichier des paramètres Maven doivent être utilisées ou non. La valeur true entraîne l’utilisation de la première configuration de proxy active trouvée en réponse aux requêtes de proxy du gestionnaire de packages. 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 employé pour l’authentification auprès du serveur CRX. Tous les goals, à l’exception de package.
verbose boolean Non false Active ou désactive la journalisation détaillée. La valeur true l’active. Tous les goals, à l’exception de package.

build

Crée un package de contenu qui est déjà défini sur un serveur CRX ou CQ5.

Remarque :

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 ci-après illustre la création du package workflow-mbean qui est installé sur le serveur CQ avec l’adresse IP 10.36.79.223. Le goal 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="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://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>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
		</configuration>
	    </plugin>
	</plugins>
    </build>
</project>

install

Installe un package dans le référentiel CRX. 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

En plus des paramètres suivants, consultez les descriptions de la section Paramètres communs.

Nom Type Obligatoire 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 boolean 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 module externe. La valeur doit être spécifiée dans le projet. 
project org.apache.maven.
project.MavenProject
Oui Projet pour lequel le module externe est configuré. Projet maven. Le projet est implicite, car il contient la configuration du module externe.
repositoryId (POM)
repoID (ligne de commande)
String 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="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://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>http://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

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

Exemple

L’exemple ci-après répertorie les packages qui sont installés sur le serveur CQ avec l’adresse IP 10.36.79.223. Le goal 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="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://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>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
		</configuration>
	     </plugin>
	  </plugins>
     </build>
</project>

rm

Supprime un package de Package Manager.

Paramètres

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

Exemple

L’exemple ci-après supprime le package workflow-mbean qui est installé sur le serveur CQ avec l’adresse IP 10.36.79.223. Le goal 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="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://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>http://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

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

Exemple

L’exemple ci-après désinstalle le package workflow-mbean qui est installé sur le serveur CQ avec l’adresse IP 10.36.79.223. Le goal 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="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://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>http://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

Outre les paramètres suivants, consultez la description du paramètre name dans la section Paramètres communs.

Nom Type Obligatoire 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 No
embeddedTarget java.lang.String Non
embeddeds java.util.List Non
failOnMissingEmbed boolean Oui false La valeur true entraîne l’échec de la build lorsqu’un artifact incorporé n’est pas trouvé dans les dépendances du projet. Avec la valeur false, la build ignore l’erreur.
filterSource java.io.File Non Fichier qui spécifie la source du filtre 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 de génération). 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. Paramètre 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 de 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 group à définir
  • name : utilisez le paramètre name à définir
  • version : utilisez le paramètre 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
  • dependencies : utilisez le paramètre dependencies à définir
  • createdBy : valeur de la propriété système user.name
  • created : heure système actuelle
  • requiresRoot : utilisez le paramètre requiresRoot à définir
  • packagePath : généré automatiquement à partir du nom du package et du groupe
requiresRoot boolean 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 No
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 de génération) 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 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 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="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://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>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

Au lieu d’exprimer le goal package dans la section executions du lot, vous pouvez utiliser content-package en tant que valeur de l’élément packaging du projet :

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://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>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

help

Paramètres

Nom Type Obligatoire Valeur par défaut Description
detail boolean 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.

Remarque :

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. Dans le package, le fichier JAR du lot figure dans le dossier jcr_root/apps/myapp/install :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
             http://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>

Utilisation d’archetypes pour générer des projets CQ

Plusieurs archetypes Maven permettent de générer des projets CQ. Utilisez l’archetype qui correspond à vos objectifs de développement :

Remarque :

Le projet Apache Sling propose également des archetypes utiles pour le développement CQ. Ils sont documentés à l’adresse suivante : http://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 pour compiler le code, créer des lots et les déployer dans des packages sur CQ. Les propriétés groupID, artifactId, version et name du projet Maven sont automatiquement remplies avec les valeurs spécifiées dans l’invite interactive archetype:generate Maven.

Vous pouvez modifier les valeurs par défaut suivantes dans le fichier pom.xml généré :

  • Nom ou adresse IP du serveur CQ : la valeur par défaut est localhost. L’élément crx.host situé sous project/properties contient cette valeur.
  • Numéro de port du serveur CQ : la valeur par défaut est 4502. L’élément crx.port situé sous project/properties contient cette valeur.
  • Version du module externe Content Package Maven : utilisez la version la plus récente comme contenu de l’élément 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 de l’archetype que vous utilisez.

  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 commande mvn clean install. 

simple-content-package-archetype

Crée un projet Maven qui convient pour installer des ressources pour une application CQ simple. La structure des dossiers est celle utilisée dans le dossier /apps du référentiel CQ. Le code POM définit les commandes pour créer un package des ressources placées dans les dossiers et installer les packages sur le serveur CQ.

Propriétés de lot archetype :

  • ID de groupe : com.day.jcr.vault
  • ID d’artifact : 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 :

  • ID de groupe : com.day.jcr.vault
  • ID d’artifact : 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 de Maven.

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 Maven qui comprend la structure des dossiers pour développer une application CQ et installer des 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.

Les valeurs ${artifactID} et ${groupId} sont celles que vous spécifiez pour ces paramètres lors de l’exécution des archetypes.

Le dossier content comporte les ressources qui sont installées sur le serveur CQ. La valeur d’artifactID est  ${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 :

  • ID de groupe : com.day.jcr.vault
  • ID d’artifact : 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

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne