HTTPS Maven 存放庫
Cloud Manager 2023.10.0 版開始推出組建環境的更新 (在 2023.12.0 版時完成),其中包含 Maven 3.8.8 的更新。Maven 3.8.1 引入一項重大變更,即為安全性增強,其目的在減少潛在漏洞。具體而言,Maven 現在預設停用所有不安全的 http://*
鏡像,如 Maven 發行說明中所述。
由於此安全性增強,某些使用者可能會在建置步驟中遇到問題,特別是從使用不安全 HTTP 連線的 Maven 存放庫下載成品時。
為了確保更新的版本有流暢的使用體驗,Adobe 建議使用者更新其 Maven 存放庫以使用 HTTPS 而非 HTTP。這項調整符合產業日益轉向使用安全通訊協定的趨勢,有助於維持安全可靠的建置程序。
使用特定的Java版本
Cloud Manager建置流程預設會使用Oracle 8 JDK建置專案,但AEM Cloud Service客戶應將Maven執行JDK版本設為21 (偏好設定)、17或11。
設定Maven JDK版本
若要設定Maven執行JDK,請在管道使用的Git存放庫分支中建立名為.cloudmanager/java-version
的檔案。 編輯檔案,使其僅包含文字21
或17
。 雖然Cloud Manager也接受8
的值,但AEM Cloud Service專案不再支援此版本。 任何其他值會受到忽略。指定21
或17
時,會使用Oracle Java 21或Oracle Java 17。
移轉至使用Java 21或Java 17建置的先決條件
為了使用Java 21或Java 17進行建置,Cloud Manager現在使用SonarQube 9.9,其與這些Java版本相容。 此變更已在Cloud Manager 2025.1.0版中引入。升級SonarQube不需要客戶採取任何動作。 如需詳細資訊及瞭解變更,請參閱Cloud Manager 2025.1.0發行說明。
將應用程式移轉至新的Java組建版本和執行階段版本時,請先在開發和測試環境中徹底測試,然後再部署到生產環境。
Adobe建議下列部署策略:
- 使用Java 21執行您的本機SDK (可從https://experience.adobe.com/#/downloads下載),並將您的應用程式部署至其中並驗證其功能。 檢查記錄檔中是否有錯誤,指出類別載入或位元組碼編排發生問題。
- 在Cloud Manager存放庫中設定分支以使用Java 21作為建置時間Java版本,設定開發管道以使用此分支並執行管道。 執行驗證測試。
- 如果情況良好,請設定您的stage/prod管道以使用Java 21作為建置時間Java版本並執行管道。
關於某些翻譯功能
在Java 21執行階段上部署下列功能時,這些功能可能會無法正常運作,而Adobe預計可在2025年初解決這些問題:
- 使用人工翻譯時,
XLIFF
(XML本地化交換檔案格式)失敗。 I18n
(國際化)無法正確處理希伯來文(he
)、印尼(in
)和意第緒文(yi
)的語言環境,因為較新Java版本中的語言環境建構函式有所變更。
執行階段需求
Java 21執行階段已套用至所有符合資格的環境,這些環境是指在AEM發行說17098或更新版本上符合以下條件的環境。 如果環境不符合條件,請務必進行調整,以確保效能、可用性和安全性。
-
ASM的最低版本:
將Java套件org.objectweb.asm
(通常整合在org.ow2.asm.*
成品中)的使用更新至9.5版或更新版本,以確保支援較新的JVM執行階段。 -
Groovy的最低版本:
將Java套件org.apache.groovy
或org.codehaus.groovy
的使用更新至4.0.22版或更新版本,以確保支援較新的JVM執行階段。新增第三方相依性 (例如 AEM Groovy 主控台) 可以間接包含此搭售方案。
-
Aries SPIFly的最低版本:
將Java套件org.apache.aries.spifly.dynamic.bundle
的使用更新至1.3.6版或更新版本,以確保支援更新的JVM執行階段。
AEM Cloud Service SDK支援Java 21,讓您在執行Cloud Manager管道之前,先驗證專案與Java 21的相容性。
-
編輯執行階段引數:
使用Java 21在本機執行AEM時,由於MaxPermSize
引數,啟動指令碼(crx-quickstart/bin/start
或crx-quickstart/bin/start.bat
)會失敗。 作為補救方法,請從指令碼移除-XX:MaxPermSize=256M
或定義環境變數CQ_JVM_OPTS
,將其設定為-Xmx1024m -Djava.awt.headless=true
。AEM Cloud Service SDK版本19149和更新版本可解決此問題。
.cloudmanager/java-version
設定為21
或17
即可完成這項作業。 如有疑問,請連絡Adobe: aemcs-java-adopter@adobe.com。建置時間需求
需要進行下列調整,才能使用Java 21和Java 17建置專案。 甚至在您執行Java 21和Java 17之前,這些檔案就已經可以更新了,因為它們與舊版Java相容。
AEM Cloud Service客戶建議儘早使用Java 21建置專案,以運用新的語言功能。
-
最低版本
bnd-maven-plugin
:
將bnd-maven-plugin
的使用更新至6.4.0版,以確保支援較新的JVM執行階段。版本7或更新版本與Java 11或更低版本不相容,因此不建議升級至該版本。
-
最低版本
aemanalyser-maven-plugin
:
將aemanalyser-maven-plugin
的使用更新至1.6.6版或更新版本,以確保支援較新的JVM執行階段。 -
最低版本
maven-bundle-plugin
:
將maven-bundle-plugin
的使用更新至5.1.5版或更新版本,以確保支援較新的JVM執行階段。版本6或更高版本與Java 11或更低版本不相容,因此不建議升級至該版本。
-
更新
maven-scr-plugin
中的相依性:maven-scr-plugin
與Java 21或Java 17不直接相容。 不過,可以透過更新外掛程式組態中的ASM相依性版本來產生描述項檔案,如下列範例所示:
<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>