HTTPS-Maven-Repositorys
Cloud Manager Version 2023.10.0 hat eine rollierende Aktualisierung der Build-Umgebung gestartet (mit Version 2023.12.0 abgeschlossen), die eine Aktualisierung auf Maven 3.8.8 enthielt. Eine wesentliche Änderung, die in Maven 3.8.1 eingeführt wurde, war eine Sicherheitsverbesserung, die darauf abzielte, potenzielle Schwachstellen zu minimieren. Insbesondere deaktiviert Maven nun alle unsicheren http://*
-Spiegelungen standardmäßig, wie in den Maven-Versionshinweisen beschrieben.
Aufgrund dieser Sicherheitsverbesserung können bei einzelnen Benutzenden während des Build-Schritts Probleme auftreten, insbesondere beim Herunterladen von Artefakten aus Maven-Repositorys, die unsichere HTTP-Verbindungen verwenden.
Um ein reibungsloses Erlebnis mit der aktualisierten Version zu gewährleisten, empfiehlt Adobe, dass Benutzende ihre Maven-Repositorys so aktualisieren, dass sie HTTPS anstelle von HTTP verwenden. Diese Anpassung steht im Einklang mit dem wachsenden Trend der Branche hin zu sicheren Kommunikationsprotokollen und trägt zur Aufrechterhaltung eines sicheren und zuverlässigen Build-Prozesses bei.
Verwenden einer bestimmten Java-Version
Der Build-Prozess von Cloud Manager verwendet das Oracle 8 JDK, um standardmäßig Projekte zu erstellen. AEM Cloud Service-Kundschaft sollte jedoch die JDK-Version zur Maven-Ausführung auf 21 (bevorzugt), 17 oder 11 festlegen.
Festlegen der Maven-JDK-Version
Erstellen Sie zum Festlegen der JDK-Version zur Maven-Ausführung eine Datei mit dem Namen .cloudmanager/java-version
in der von der Pipeline verwendeten Git-Repository-Verzweigung. Bearbeiten Sie die Datei so, dass sie nur den Text enthält, 21
oder 17
. Cloud Manager akzeptiert zwar auch den Wert 8
, jedoch wird diese Version nicht mehr für AEM Cloud Service-Projekte unterstützt. Alle anderen Werte werden ignoriert. Wenn 21
oder 17
angegeben ist, wird Oracle Java 21 oder Oracle Java 17 verwendet.
Voraussetzungen für die Migration zur Build-Erstellung mit Java 21 oder Java 17
Zum Erstellen mit Java 21 oder Java 17 verwendet Cloud Manager jetzt SonarQube 9.9, das mit diesen Java-Versionen kompatibel ist. Diese Änderung wurde mit Cloud Manager Version 2025.1.0 eingeführt. Für ein Upgrade von SonarQube ist keine Kundenaktion erforderlich. Weitere Informationen zur Änderung finden Sie in den Versionshinweisen für Cloud Manager 2025.1.0.
Wenn Sie Ihre Anwendung auf eine neue Java-Build- und Runtime-Version migrieren, testen Sie sie gründlich in Entwicklungs- und Staging-Umgebungen, bevor Sie sie in der Produktion bereitstellen.
Adobe empfiehlt die folgende Bereitstellungsstrategie:
- Führen Sie Ihr lokales SDK mit Java 21 aus, das Sie unter https://experience.adobe.com/#/downloads herunterladen können, stellen Sie Ihre Anwendung dafür bereit und überprüfen Sie die Funktionalität. Überprüfen Sie die Protokolle auf Fehler, die auf Probleme beim Laden von Klassen oder Bytecode-Weaving hinweisen.
- Konfigurieren Sie eine Verzweigung im Cloud Manager-Repository so, dass Java 21 als Java-Version zur Build-Zeit verwendet wird. Konfigurieren Sie eine DEV-Pipeline für die Verwendung dieser Verzweigung und führen Sie die Pipeline aus. Führen Sie Validierungstests durch.
- Wenn alles gut aussieht, konfigurieren Sie Ihre Staging-/Produktions-Pipeline so, dass Java 21 als Java-Version zur Build-Zeit verwendet wird, und führen Sie die Pipeline aus.
Über bestimmte Übersetzungsfunktionen
Die folgenden Funktionen funktionieren möglicherweise nicht ordnungsgemäß, wenn sie in der Java 21 Runtime bereitgestellt werden, und Adobe geht von einer Korrektur bis Anfang 2025 aus:
XLIFF
(XML Localization Interchange File Format) schlägt bei menschlichen Übersetzungen fehl.I18n
(Internationalisierung) behandelt die Sprachgebietsschemata Hebräisch (he
), Indonesisch (in
) und Jiddisch (yi
) aufgrund von Änderungen im Gebietsschema-Konstruktor in neueren Java-Versionen nicht ordnungsgemäß.
Laufzeitanforderungen
Die Java 21-Laufzeit wurde auf alle zulässigen Umgebungen angewendet, d. h. Umgebungen in der AEM-Version 17098 oder höher, die die folgenden Kriterien erfüllen. Wenn eine Umgebung die Kriterien nicht erfüllt, müssen Sie Anpassungen vornehmen, um Leistung, Verfügbarkeit und Sicherheit sicherzustellen.
-
Mindestversion von ASM:
Aktualisieren Sie die Verwendung des Java-Paketsorg.objectweb.asm
, das häufig in Artefakten vom Typorg.ow2.asm.*
gebündelt ist, auf Version 9.5 oder höher, um die Unterstützung für neuere JVM-Laufzeiten sicherzustellen. -
Mindestversion von Groovy:
Aktualisieren Sie die Verwendung der Java-Paketeorg.apache.groovy
oderorg.codehaus.groovy
auf Version 4.0.22 oder höher, um die Unterstützung für neuere JVM-Laufzeiten sicherzustellen.Dieses Paket kann indirekt durch Hinzufügen von Abhängigkeiten von Dritten wie der AEM Groovy Console eingeschlossen werden.
-
Mindestversion von Aries SPIFly:
Aktualisieren Sie die Verwendung des Java-Paketsorg.apache.aries.spifly.dynamic.bundle
auf Version 1.3.6 oder höher, um die Unterstützung für neuere JVM-Laufzeiten sicherzustellen.
Das AEM Cloud Service SDK unterstützt Java 21 und ermöglicht es, die Kompatibilität Ihres Projekts mit Java 21 zu überprüfen, bevor eine Cloud Manager-Pipeline ausgeführt wird.
-
Laufzeitparameter bearbeiten:
Beim lokalen Ausführen von AEM mit Java 21 schlagen die Startskripte (crx-quickstart/bin/start
odercrx-quickstart/bin/start.bat
) aufgrund des ParametersMaxPermSize
fehl. Entfernen Sie als Abhilfe entweder-XX:MaxPermSize=256M
aus dem Skript oder definieren Sie die UmgebungsvariableCQ_JVM_OPTS
, indem Sie sie auf-Xmx1024m -Djava.awt.headless=true
setzen.Dieses Problem wurde in der AEM Cloud Service SDK-Version 19149 und höher behoben.
.cloudmanager/java-version
auf 21
oder 17
gesetzt wird. Wenden Sie sich bei Fragen an Adobe unter aemcs-java-adopter@adobe.com.