Show Menu
SUJETS×

Archétype de projet AEM

L’archétype de projet AEM crée un projet Adobe Experience Manager minimal qui s'appuie sur des bonnes pratiques pour que vous puissiez démarrer vos propres projets AEM sur des bases saines. Les propriétés à fournir lors de l'utilisation de cet archétype vous permettent de spécifier les noms de toutes les parties de ce projet et de contrôler certaines fonctionnalités facultatives.
La dernière version de l'archétype de projet AEM ainsi que des informations techniques complètes sont disponibles sur GitHub .
Consultez le didacticiel Prise en main d'AEM Sites - WKND de la documentation d'AEM pour obtenir un exemple pratique qui vous guidera tout au long de l’utilisation de l’archétype pour mettre en œuvre un projet simple.

Fonctionnalités

L’archétype comporte plusieurs fonctionnalités destinées à offrir un point de départ pratique pour les nouveaux projets AEM :
  • Pages en anglais et en français avec un exemple de contenu
  • Un modèle de contenu basé sur la fonction de modèle modifiable avec un exemple de stratégie de contenu
  • Composant de page basé sur le composant principal de page AEM
  • Exemples de composants de contenu implémentés avec le modèle de proxy recommandé et un exemple de composant personnalisé helloworld tous basés sur les composants principaux AEM .
  • Configurations des émulateurs de terminal, configuration par glisser-déposer et internationalisation
  • Bibliothèques clients observant les conventions de dénomination BEM et styles spécifiques aux composants
  • Exemples de lots comprenant des modèles, servlets, filtres et planificateurs
  • Tests d’unité, d’intégration et côté client

Pourquoi utiliser l'archétype

L’utilisation de l’archétype de projet AEM vous permet de vous orienter vers la création d’un projet AEM basé sur des bonnes pratiques, et ce, en un tour de main. Avec l’archétype, toutes les pièces sont déjà en place afin que, même avec un résultat de projet très simple, celui-ci implémente déjà toutes les fonctionnalités clés d’AEM. Tout ce qaue vous aurez alors à faire est de vous appuyer sur ce projet de base et de le développer.
De nombreux éléments entrent bien sûr en compte dans la réussite d'un projet AEM, mais l’utilisation de l’archétype de projet AEM constitue une base solide et est vivement recommandée pour la création de tout projet AEM.

Avantages de l'utilisation de l'archétype

L’archétype AEM est constitué de modules :
  •  : un lot Java contenant toutes les fonctionnalités de base, telles que les services OSGi, les écouteurs et les planificateurs, ainsi que le code Java associé aux composants, tel que les servlets et les filtres de requête.
  •  : avec les éléments
    /apps
    et
    /etc
    du projet, c’est-à-dire les bibliothèques clients JS et CSS, les composants, les modèles, les configurations spécifiques au mode d’exécution, ainsi que les tests Hobbes.
  •  : avec un exemple de contenu utilisant des composants du module ui.apps.
  • ui.tests
     : lot Java contenant des tests JUnit exécutés côté serveur. Ce lot ne doit pas être déployé en production.
  • ui.launcher
     : avec le code-glue qui déploie le lot ui.tests (et les lots dépendants) vers le serveur et déclenche l’exécution de JUnit distante.
  •  :
    (facultatif)
    contient les artefacts requis pour utiliser le module de génération front-end basé sur Webpack.
Les modules de l’archétype AEM représentés dans Maven sont déployés vers AEM en tant que packages de contenu représentant l’application, le contenu et les lots OSGi nécessaires.

Conditions

La version actuelle de l’archétype requiert les éléments suivants :
Pour obtenir la liste des versions AEM prises en charge pour les versions précédentes de l’archétype, reportez-vous à l’ historique des versions AEM prises en charge .

Utilisation de l'archétype

Pour utiliser l'archétype, vous devez d'abord créer un projet qui génère les modules dans une structure de fichiers locale comme décrit précédemment . Dans le cadre de la génération du projet, plusieurs propriétés de votre projet peuvent être définies, telles que le nom du projet, la version, etc.
La création du projet avec Maven crée les artefacts (packages et lots OSGi) qui peuvent être déployés vers AEM. Des commandes et des profils Maven supplémentaires peuvent être utilisés pour déployer les artefacts du projet vers une instance AEM.

Création d’un projet

Pour commencer, il vous suffit d’utiliser l' extension Eclipse AEM , de suivre l’assistant Nouveau projet et de choisir
Exemple de projet multimodule AEM
pour utiliser une version publiée de l’archétype.
Bien sûr, vous pouvez également appeler Maven directement.
mvn archetype:generate \ -DarchetypeGroupId=com.adobe.granite.archetypes \ -DarchetypeArtifactId=aem-project-archetype \ -DarchetypeVersion=XX
XX
est le numéro de la dernière version de l'archétype de projet AEM.
Il est recommandé d’ajouter le profil
adobe-public
à votre fichier
settings.xml
Maven afin d’ajouter automatiquement repo.adobe.com au processus de création Maven.
Un exemple de fichier POM est disponible ici .

Propriétés

Les propriétés suivantes sont disponibles lors de la création d’un projet à l’aide de l’archétype.
Nom
Default
Description
groupId
groupId
Maven de base
artifactId
ID d’artefact Maven de base
version
Version
package
Package source Java
appsFolderName
Nom du dossier
/apps
artifactName
Nom du projet Maven
componentGroupName
Nom du groupe de composants AEM
contentFolderName
Nom du dossier
/content
confFolderName
Nom du dossier
/conf
cssId
Préfixe utilisé dans la feuille CSS générée
packageGroup
Nom du groupe de package de contenu
siteName
Nom du site AEM
optionAemVersion
6.5.0
Version cible d’AEM
optionIncludeExamples
y
Inclure un exemple de site de bibliothèque de composants
optionIncludeErrorHandler
n
Inclure une page de réponse 404 personnalisée
optionIncludeFrontendModule
n
Si l’archétype est exécuté en mode interactif la première fois, les propriétés ayant des valeurs par défaut ne peuvent pas être modifiées (voir ARCHETYPE-308 pour plus de détails). La valeur peut être modifiée lorsque la confirmation de propriété finale est refusée et que le questionnaire est répété, ou en transmettant le paramètre dans la ligne de commande (par ex.,
-DoptionIncludeExamples=n
).

Profils

Le projet Maven généré prend en charge différents profils de déploiement lors de l’exécution de
mvn install
.
ID de profil
Description
autoInstallBundle
Installe le lot principal avec le plug-in maven-sling-plugin dans OSGi.
autoInstallPackage
Installe le package de contenu ui.content et ui.apps avec le plug-in content-package-maven-plugin dans le gestionnaire de packages dans l’instance de création par défaut sur l’hôte local, le port 4502. Le nom d’hôte et le port peuvent être modifiés à l’aide des propriétés
aem.host
et
aem.port
définies par l’utilisateur.
autoInstallPackagePublish
Installe le package de contenu ui.content et ui.apps avec le plug-in content-package-maven-plugin dans le gestionnaire de packages dans l’instance de publication par défaut sur l’hôte local, le port 4503. Le nom d’hôte et le port peuvent être modifiés à l’aide des propriétés
aem.host
et
aem.port
définies par l’utilisateur.
integrationTests
Exécute les tests d’intégration fournis sur l’instance AEM (uniquement pour la phase
verify
).

Création et installation

Pour créer tous les modules exécutés dans le répertoire racine du projet, utilisez la commande Maven suivante.
mvn clean install
Si vous disposez d’une instance AEM en cours d’exécution, vous pouvez créer et assembler l’ensemble du projet et le déployer vers AEM avec la commande Maven suivante.
mvn clean install -PautoInstallPackage
Pour déployer le projet vers une instance de publication, exécutez cette commande.
mvn clean install -PautoInstallPackagePublish
Vous pouvez également exécuter cette commande pour effectuer un déploiement vers une instance de publication.
mvn clean install -PautoInstallPackage -Daem.port=4503
Ou pour déployer uniquement le lot vers l’auteur, exécutez cette commande.
mvn clean install -PautoInstallBundle

Fichier POM parent

Le fichier
pom.xml
racine du projet (
<src-directory>/<project>/pom.xml
) est connu sous le nom de fichier POM parent et oriente la structure du projet et gère les dépendances ainsi que certaines propriétés globales du projet.

Propriétés globales du projet

La section
<properties>
du fichier POM parent définit plusieurs propriétés globales importantes pour le déploiement de votre projet vers une instance AEM, telles que le nom d’utilisateur/mot de passe, le nom d’hôte/port, etc.
Ces propriétés sont configurées pour être déployées vers une instance AEM locale, car il s’agit du scénario de création le plus courant pour les développeurs. Notez qu’il existe des propriétés à déployer vers une instance de création et une instance de publication. Il s'agit également de l’endroit où les informations d’identification sont définies pour s’authentifier auprès de l’instance AEM. Les informations d’identification admin:admin utilisées sont celles par défaut.
Ces propriétés sont configurées de manière à pouvoir être remplacées lors d'un déploiement vers des environnements de niveau supérieur. De cette manière, les fichiers POM n’ont pas à changer, mais des variables comme
aem.host
et
sling.password
peuvent être remplacées via des arguments de ligne de commande :
mvn -PautoInstallPackage clean install -Daem.host=production.hostname -Dsling.password=productionpasswd

Structure du module

La section
<modules>
du fichier POM parent définit les modules que le projet va créer. Par défaut, le projet crée les modules standard précédemment définis  : core, ui.apps, ui.content, ui.tests et it.launcher. D'autres modules peuvent toujours être ajoutés à mesure qu'un projet évolue.

Dépendances

La section
<dependencyManagement>
du fichier POM parent définit toutes les dépendances et versions des API utilisées dans le projet. Les versions doivent être gérées dans le fichier POM parent. Les sous-modules tels que core et ui.apps ne doivent inclure aucune information de version.

Uber Jar

L’une des dépendances clés est AEM Uber Jar . Celui-ci inclut toutes les API AEM ayant une seule entrée de dépendance pour la version d’AEM.
Il est recommandé de mettre à jour la version d'Uber Jar pour qu’elle corresponde à la version cible d’AEM. Par exemple, si vous prévoyez de procéder au déploiement vers AEM 6.4, vous devez mettre à jour la version d'Uber Jar vers la 6.4.0.

Composants principaux

L’archétype de projet AEM tire bien sûr parti des composants principaux.
Les composants principaux sont installés automatiquement dans AEM dans le mode d’exécution par défaut et utilisés par l’exemple de site Web.Retail. Dans un mode d’exécution de production (
nosamplecontent
), les composants principaux ne sont pas disponibles.
Par conséquent, pour tirer parti des composants principaux dans tous les déploiements, il est recommandé de les inclure dans le projet Maven.
Chaque version des composants principaux est généralement suivie d’une version de l’archétype de projet AEM, de sorte que l’archétype le plus récent utilise la dernière version des composants principaux.
Cependant, une nouvelle version de l'archétype peut ne pas suivre directement une nouvelle version des composants principaux. Vous pouvez donc mettre à jour la dépendance envers les composants principaux vers la dernière version.
Le fichier core.wcm.components.example est un ensemble d’exemples de pages qui illustrent des exemples de composants principaux. Les bonnes pratiques recommandent que, lors du déploiement d’un projet destiné à la production, vous supprimiez cette dépendance et cette inclusion de sous-package.

Tests

Il existe trois niveaux de tests contenus dans le projet et, parce qu'il s'agit de différents types de tests, ils sont exécutés de différentes manières ou à différents endroits.
  • Test unitaire dans le noyau : celui-ci comprend les tests unitaires classiques du code contenu dans le lot. Pour lancer ce test, exécutez :
    • mvn clean test
  • Tests d’intégration côté serveur : ces tests exécutent des tests de type unitaire dans l’environnement AEM, c’est-à-dire sur le serveur AEM. Pour lancer ce test, exécutez :
    • mvn clean verify -PintegrationTests
  • Tests Hobbes.js côté client : il s’agit de tests JavaScript côté navigateur qui vérifient le comportement côté navigateur. Pour tester :
    1. Chargez AEM dans votre navigateur comme vous le feriez pour créer une page.
    2. Ouvrez la page en mode développeur .
    3. Ouvrez le panneau de gauche et basculez sur l’onglet
      Tests
      .
    4. Recherchez les
      Tests MonNom
      générés et exécutez-les.

Étapes suivantes

Vous avez donc créé et installé l’archétype de projet AEM. Et maintenant ? L’archétype est petit mais comprend de nombreux exemples de puissantes fonctionnalités AEM configurées selon les recommandations des bonnes pratiques. Utilisez ces exemples pour vous guider sur la meilleure manière de tirer parti de ces fonctionnalités dans votre projet. Pour tout projet, il vous faudra probablement :