程式碼品質檢查已失敗,部署無法進行。是否有辦法略過這項檢查?
可以。除了安全評等之外,所有程式碼品質檢查失敗都是非關鍵性量度,因此可透過擴展結果 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 是儲存應用程式程式碼的資料夾)。