Environnement de création de Cloud Manager build-environment

Découvrez l’environnement de création de Cloud Manager et comment il génère et teste votre code.

TIP
Ce document couvre l’environnement de création Cloud Manager pour le développement de votre projet AEM as a Cloud Service. Pour plus d’informations sur les plateformes clientes prises en charge par AEM as a Cloud Service pour la création de contenu, consultez Plateformes clientes prises en charge.

Détails de l’environnement de création build-environment-details

Cloud Manager crée et teste votre code à l’aide d’un environnement de génération spécialisé.

  • Les versions de Java installées sont les suivantes : Oracle JDK 11.0.22, Oracle JDK 17.0.10 et Oracle JDK 21.0.4.
  • IMPORTANT : par défaut, la variable d’environnement JAVA_HOME est définie sur /usr/lib/jvm/jdk1.8.0_401, qui contient le JDK Oracle 8u401. Remplacez cette valeur par défaut pour que les projets cloud AEM utilisent le JDK 21 (recommandé), 17 ou 11. Consultez la section Définition de la version du JDK Maven pour plus d’informations.

  • D’autres packages système nécessaires sont installés.

    • bzip2
    • unzip
    • libpng
    • imagemagick
    • graphicsmagick
  • D’autres packages sont installés au moment de la génération, comme décrit dans la section Installation de packages système supplémentaires.

  • Chaque version s’exécute dans un nouvel environnement ; le conteneur de version ne conserve pas les données entre les exécutions.

  • Maven est toujours exécuté avec les trois commandes suivantes.

    • mvn --batch-mode org.apache.maven.plugins:maven-dependency-plugin:3.1.2:resolve-plugins
    • mvn --batch-mode org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean -Dmaven.clean.failOnError=false
    • mvn --batch-mode org.jacoco:jacoco-maven-plugin:prepare-agent package
  • Maven est configuré au niveau du système avec un fichier settings.xml qui inclut automatiquement le référentiel public d’artefacts Adobe à l’aide d’un profil appelé adobe-public. (Pour plus d’informations, consultez le référentiel Maven public d’Adobe).

NOTE
Cloud Manager ne spécifie pas de version spécifique du jacoco-maven-plugin, mais la version requise dépend de la version Java du projet. Pour Java 8, la version du plug-in doit être au moins 0.7.5.201505241946, tandis que les versions Java plus récentes nécessitent une version plus récente.

Référentiels Maven HTTPS https-maven

Cloud Manager version 2023.10.0 a commencé une mise à jour progressive de l’environnement de création (se terminant par la version 2023.12.0), qui incluait une mise à jour de Maven 3.8.8. Un changement significatif introduit dans Maven 3.8.1 a été une amélioration de la sécurité visant à atténuer les vulnérabilités potentielles. Plus précisément, Maven désactive désormais par défaut tous les miroirs http://* non sécurisés, comme indiqué dans les Notes de mise à jour de Maven.

Certains utilisateurs rencontrent des problèmes lors de l’étape de création lors du téléchargement d’artefacts à partir de référentiels Maven qui utilisent des connexions HTTP non sécurisées.

Pour garantir une expérience fluide avec la version mise à jour, Adobe recommande aux utilisateurs et utilisatrices de mettre à jour leurs référentiels Maven de sorte à utiliser HTTPS au lieu de HTTP. Cet ajustement s’aligne sur la transition de l’industrie vers des protocoles de communication sécurisés et aide à maintenir un processus de création sécurisé et fiable.

Utiliser une version Java spécifique using-java-support

Le processus de création Cloud Manager utilise le JDK Oracle 8 pour créer des projets par défaut, mais les clients AEM Cloud Service ont défini la version du JDK d’exécution Maven sur 21 (recommandé), 17 ou 11.

Définition de la version du JDK Maven alternate-maven-jdk-version

Pour définir le JDK d’exécution Maven, créez un fichier nommé .cloudmanager/java-version dans la branche de référentiel Git utilisée par le pipeline. Modifiez le fichier afin qu’il contienne uniquement le texte, le 21 ou le 17. Bien que Cloud Manager accepte également une valeur de 8, cette version n’est plus prise en charge pour les projets AEM Cloud Service. Toute autre valeur est ignorée. Lorsque 21 ou 17 est spécifié, Oracle Java 21 ou Oracle Java 17 est utilisé.

Conditions préalables à la migration vers la création avec Java 21 ou Java 17 prereq-for-building

Pour créer avec Java 21 ou Java 17, Cloud Manager utilise désormais SonarQube 9.9, compatible avec ces versions Java. Cette modification a été introduite dans la version 2025.1.0 de Cloud Manager. Aucune action du client n’est requise pour mettre à niveau SonarQube. Pour plus d’informations et pour mieux comprendre la modification, consultez les notes de mise à jour de la version 2025.1.0 de Cloud Manager.

Lors de la migration de votre application vers une nouvelle version de build Java et une nouvelle version d’exécution, testez minutieusement dans les environnements de développement et d’évaluation avant de procéder au déploiement en production.

Adobe recommande la stratégie de déploiement suivante :

  1. Exécutez votre SDK locale avec Java 21, que vous pouvez télécharger à partir de https://experience.adobe.com/#/downloads, déployez votre application sur celle-ci et validez ses fonctionnalités. Pour vous assurer qu’il n’y a aucune erreur indiquant des problèmes de chargement de classe ou de tissage par code de trame, vérifiez les journaux.
  2. Pour utiliser Java 21 en tant que version Java au moment de la création, configurez une branche dans votre référentiel Cloud Manager, configurez un pipeline de développement pour utiliser cette branche, puis exécutez le pipeline. Exécutez vos tests de validation.
  3. Si les résultats sont satisfaisants lors de l’utilisation de Java 21 comme version Java au moment de la création, configurez votre pipeline d’évaluation/de production et exécutez le pipeline.
Fonctionnalités de traduction translation-features

Les fonctionnalités suivantes ne fonctionnent pas correctement lorsqu’elles sont déployées sur l’exécution Java 21 et Adobe prévoit de les résoudre d’ici le début de l’année 2025 :

  • Le format XLIFF (XML Localization Interchange File Format) échoue lors de l’utilisation de la traduction humaine.
  • I18n (Internationalisation) ne gère pas correctement les paramètres régionaux hébreu (he), indonésien (in) et yiddish (yi), car le constructeur de paramètres régionaux a été modifié dans des versions Java plus récentes.

Exigences d’exécution runtime-requirements

L’exécution Java 21 a été appliquée à tous les environnements éligibles, qui sont des environnements de la version AEM 17098 ou ultérieure qui répondent aux critères ci-dessous. Si un environnement ne répond pas aux critères, il est important d’effectuer des ajustements pour garantir les performances, la disponibilité et la sécurité.

  • Version minimale d’ASM :
    Mettez à jour l’utilisation du package Javaorg.objectweb.asm souvent regroupé dans des artefacts org.ow2.asm.*, vers la version 9.5 ou ultérieure pour garantir la prise en charge des exécutions JVM plus récentes.

  • Version minimale de Groovy :
    Mettez à jour l’utilisation des packages Java org.apache.groovy ou org.codehaus.groovy vers la version 4.0.22 ou ultérieure pour garantir la prise en charge des exécutions JVM plus récentes.

    Ce lot peut être inclus indirectement en ajoutant des dépendances tierces telles que la console AEM Groovy.

  • Version minimale de Aries SPIFly :
    Mettez à jour l’utilisation du package Java org.apache.aries.spifly.dynamic.bundle vers la version 1.3.6 ou ultérieure pour garantir la prise en charge des exécutions JVM plus récentes.

Le SDK AEM Cloud Service prend en charge Java 21 et vous permet de vérifier la compatibilité de votre projet avec Java 21 avant d’exécuter un pipeline Cloud Manager.

  • Modifier un paramètre d’exécution :
    Lors de l’exécution locale d’AEM avec Java 21, les scripts de démarrage (crx-quickstart/bin/start ou crx-quickstart/bin/start.bat) échouent en raison du paramètre MaxPermSize . Vous pouvez également supprimer le -XX:MaxPermSize=256M du script ou définir la variable d’environnement CQ_JVM_OPTS, en la définissant sur -Xmx1024m -Djava.awt.headless=true.

    Ce problème est résolu dans la version 19149 et ultérieure du SDK AEM Cloud Service.

IMPORTANT
Si un environnement n’a pas encore été automatiquement mis à jour vers l’exécution Java 21, vous pouvez le déclencher en créant avec Java 17 ou 21. Pour configurer ce paramètre, définissez .cloudmanager/java-version sur 21 ou 17. Pour toute question, contactez Adobe à l’adresse aemcs-java-adopter@adobe.com.

Exigences de temps de création build-time-reqs

Les ajustements suivants sont nécessaires pour permettre la création du projet avec Java 21 et Java 17. Elles peuvent être mises à jour avant même l’exécution de Java 21 et Java 17, car elles sont compatibles avec les versions Java plus anciennes.

Il est recommandé aux clients AEM Cloud Service de créer leurs projets avec Java 21 dès que possible afin de tirer parti des nouvelles fonctionnalités de langue.

  • Version minimale de bnd-maven-plugin :
    Mettez à jour l’utilisation de bnd-maven-plugin vers la version 6.4.0 pour garantir la prise en charge des exécutions JVM plus récentes.

    Les versions 7 ou ultérieures ne sont pas compatibles avec Java 11 ou version antérieure, une mise à niveau vers cette version n’est donc pas recommandée.

  • Version minimale de aemanalyser-maven-plugin :
    Mettez à jour l’utilisation de aemanalyser-maven-plugin vers la version 1.6.16 ou ultérieure pour garantir la prise en charge des exécutions JVM plus récentes.

  • Version minimale de maven-bundle-plugin :
    Mettez à jour l’utilisation de maven-bundle-plugin vers la version 5.1.5 ou une version ultérieure pour garantir la prise en charge des exécutions JVM plus récentes.

    Les versions 6 ou ultérieures ne sont pas compatibles avec Java 11 ou version antérieure, une mise à niveau vers cette version n’est donc pas recommandée.

  • Mettez à jour les dépendances dans maven-scr-plugin :
    Le maven-scr-plugin n’est pas directement compatible avec Java 21 ou Java 17. Cependant, les fichiers descripteurs peuvent être générés en mettant à jour la version des dépendances AEM dans la configuration du plug-in, comme illustré dans l’exemple suivant :

<project>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-scr-plugin</artifactId>
        <version>1.26.4</version>
        <executions>
          <execution>
            <id>generate-scr-scrdescriptor</id>
            <goals>
              <goal>scr</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.ow2.asm</groupId>
            <artifactId>asm-analysis</artifactId>
            <version>9.7.1</version>
            <scope>compile</scope>
          </dependency>
        </dependencies>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>

Variables d’environnement - standard environment-variables

Configurez le processus de création en fonction des informations sur le programme ou le pipeline.

Par exemple, si la minimisation de JavaScript se produit au moment de la création à l’aide d’un outil tel que gulp, différents niveaux de minimisation sont recommandés pour différents environnements. Une version de développement utilise un niveau de minimisation plus léger par rapport à l’évaluation et à la production.

Pour la prise en charge, Cloud Manager ajoute ces variables d’environnement standard au conteneur de build pour chaque exécution.

Nom de variable
Définition
CM_BUILD
Toujours définie sur true
BRANCH
Branche configurée pour l’exécution
CM_PIPELINE_ID
Identifiant numérique de pipeline
CM_PIPELINE_NAME
Nom du pipeline
CM_PROGRAM_ID
Identifiant numérique de programme
CM_PROGRAM_NAME
Nom du programme
ARTIFACTS_VERSION
Pour un pipeline intermédiaire ou de production, version synthétique générée par Cloud Manager
CM_AEM_PRODUCT_VERSION
Version de la mise à jour

Variables d’environnement - pipeline pipeline-variables

Votre processus de création nécessite des variables de configuration spécifiques qui ne sont pas stockées dans le référentiel Git. En outre, vous devez ajuster ces variables entre les exécutions de pipeline à l’aide de la même branche.

Voir aussi Configurer des variables de pipeline pour plus d’informations.

Installation de packages système supplémentaires installing-additional-system-packages

Certaines versions nécessitent des packages système supplémentaires pour fonctionner entièrement. Par exemple, une version appelle un script Python ou Ruby et doit disposer d’un interprète de langue approprié installé. Ce processus d’installation peut être géré en appelant la exec-maven-plugin de votre pom.xml pour appeler APT. Cette exécution est encapsulée dans un profil Maven spécifique à Cloud Manager. Cet exemple installe Python.

        <profile>
            <id>install-python</id>
            <activation>
                <property>
                        <name>env.CM_BUILD</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.6.0</version>
                        <executions>
                            <execution>
                                <id>apt-get-update</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>apt-get</executable>
                                    <arguments>
                                        <argument>update</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-python</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>apt-get</executable>
                                    <arguments>
                                        <argument>install</argument>
                                        <argument>-y</argument>
                                        <argument>--no-install-recommends</argument>
                                        <argument>python</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

Cette même technique peut être utilisée pour installer des packages spécifiques à la langue, par exemple utiliser gem pour les packages RubyGems ou pip pour les packages Python.

NOTE
Installer un package système de cette manière ne l’installe pas dans l’environnement d’exécution utilisé pour Adobe Experience Manager. Si vous avez besoin d’installer un package système dans l’environnement AEM, contactez votre représentant Adobe.
TIP
Pour plus d’informations sur l’environnement de création front-end, consultez Développement de sites avec le pipeline front-end.
recommendation-more-help
experience-manager-cloud-service-help-main-toc