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.
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é.
- L’environnement de création est basé sur Linux, dérivé de Ubuntu 22.04.
- Apache Maven 3.9.4 est installé.
- Adobe recommande aux utilisateurs et utilisatrices de mettre à jour leurs référentiels Maven de sorte à utiliser HTTPS au lieu de HTTP.
- 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_HOMEest 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.
bzip2unziplibpngimagemagickgraphicsmagick
-
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-pluginsmvn --batch-mode org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean -Dmaven.clean.failOnError=falsemvn --batch-mode org.jacoco:jacoco-maven-plugin:prepare-agent package
-
Maven est configuré au niveau du système avec un fichier
settings.xmlqui 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).
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 :
- 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.
- 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.
- 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.asmsouvent regroupé dans des artefactsorg.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 Javaorg.apache.groovyouorg.codehaus.groovyvers 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 Javaorg.apache.aries.spifly.dynamic.bundlevers 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/startoucrx-quickstart/bin/start.bat) échouent en raison du paramètreMaxPermSize. Vous pouvez également supprimer le-XX:MaxPermSize=256Mdu script ou définir la variable d’environnementCQ_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.
.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 debnd-maven-pluginvers 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 deaemanalyser-maven-pluginvers 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 demaven-bundle-pluginvers 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:
Lemaven-scr-pluginn’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.
CM_BUILDtrueBRANCHCM_PIPELINE_IDCM_PIPELINE_NAMECM_PROGRAM_IDCM_PROGRAM_NAMEARTIFACTS_VERSIONCM_AEM_PRODUCT_VERSIONVariables 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.