程式碼品質檢查已失敗,部署無法進行。是否有辦法略過這項檢查?

可以。除了安全評等之外,所有程式碼品質檢查失敗都是非關鍵性量度,因此可透過擴展結果 UI 中的專案將其視為部署管道的一部分而略過。

具有部署管理員、專案管理員或業務負責人角色的使用者可覆寫此問題,這種情況下,管道會繼續進行,或者他們可接受此問題,這種情況下,管道會因失敗而停止。

如需詳細資訊,請參閱文件:程式碼品質測試設定非生產管道

我是否能將 SNAPSHOT 用於 Maven 專案的版本?

可以。對於開發人員部署,Git 分支 pom.xml 檔案在 <version> 值的末尾必須包含 -SNAPSHOT

此值允許在版本未變更時仍可安裝後續部署。在開發人員部署中,不會為 Maven 組建新增或產生自動版本。

您還可以將版本設定為 -SNAPSHOT,以用於測試和生產組建或部署。Cloud Manager 會自動設定適當的版本編號並在 Git 中為您建立標記。如有需要,可在稍後參照此標記。

有關版本處理的更多詳細資訊,請參閱 Maven 專案版本處理

套件和套裝的版本設定如何用於測試和生產部署?

在中繼和生產部署中,會產生自動版本 - 請參閱 Maven 專案版本處理

對於測試和生產部署中的自訂版本設定,請設定適當的三部分 Maven 版本,例如 1.0.0。每次部署到生產時,都需增加版本。

Cloud Manager 會自動將其版本新增到測試和生產組建,並建立 Git 分支。不需要特別設定。如果您並未依照之前的說明設定 Maven 版本,部署仍會成功,並會自動設定版本。

對於 Cloud Manager 部署,我的 Maven 組建失敗,但它在本機建置且沒有出現錯誤。有什麼問題嗎?

如需更多詳細資訊,請參閱此 Git 資源

如果 Cloud Manager 部署在 AEM as a Cloud Service 中的部署步驟失敗,我該怎麼辦?

部署失敗的最常見原因是 sling-distribution-importer 使用者權限不足。在這種情況下,Cloud Manager 部署期間部署步驟會失敗,並會產生如下錯誤。

[Queue Processor for Subscriber agent forwardPublisherSubscriber] org.apache.jackrabbit.vault.fs.io.Importer Error while committing changes. Retrying import from checkpoint at /. Retries 4/10
[Queue Processor for Subscriber agent forwardPublisherSubscriber] org.apache.sling.distribution.journal.impl.subscriber DistributionSubscriber Error processing queue item
org.apache.sling.distribution.common.DistributionException: Error processing distribution package
dstrpck-1583514457813-c81e7751-2da6-4d00-9814-434187f08d32. Retry attempts 162/infinite.
Caused by: org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session.
Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied [EventAdminAsyncThread #7] org.apache.sling.distribution.journal.impl.publisher.DistributionPublisher [null] Error processing distribution package` `dstrpck-1583514457813-c81e7751-2da6-4d00-9814-434187f08d32. Retry attempts 344/infinite. Message: Error trying to extract package at path /etc/packages/com.myapp/myapp-base.ui.content-5.1.0-SNAPSHOT.

sling-distribution-importer使用者需要 ui.content package 中定義內容路徑的額外權限。此規則通常代表您必須為 /conf/var 新增權限。

解決方案是新增 RepositoryInitializer OSGi 設定指令碼到您的應用程式部署套件中,以為 sling-distribution-importer 使用者新增 ACL。

在先前的錯誤範例中,myapp-base.ui.content-*.zip套件包括 /conf/var/workflow 底下的內容。為了部署成功,需要這些路徑底下的 sling-distribution-importer 權限。

以下是為 sling-distribution-importer 使用者新增額外權限的 org.apache.sling.jcr.repoinit.RepositoryInitializer-DistributionService.config OSGi 設定範例。設定在 /var 底下新增權限。這類設定必須新增到 /apps/myapp/config 底下的應用程式套件中 (其中 myapp 是儲存應用程式程式碼的資料夾)。