AEM Cloud Manager:ui.content パッケージのバージョン競合は、下位の環境でのデプロイメントをブロックします
この記事では、静的パッケージバージョンが、Adobe Experience Manager Cloud Manager パイプラインの下位環境でのui.content パッケージのデプロイメントをどのように防ぐかを説明します。
説明 description
環境
Adobe Experience Manager(AEM)Cloud Manager(すべてのバージョン)
問題/症状
Cloud Manager パイプラインを介して下位の環境(Dev、E2E2、PLRTなど)にデプロイする場合、同じバージョンのパッケージが既に存在する場合、ui.content パッケージはアップロードに失敗します。 デプロイメントログにエラーは表示されませんが、パッケージが再インストールまたは更新されていません。 実稼動パイプラインでは、ビルドごとに一意のタイムスタンプ付きバージョンが生成されるため、同じパッケージが正常にアップロードされます。
実稼動からのサンプルログの抜粋:
Set project version to 5.0.0.2025_0524_1104410_0008467799 from 5.0.0
Executing command mvn --batch-mode org.codehaus.mojo:versions-maven-plugin:2.6:set -DnewVersion=5.0.0.2025_0524_1104410_0008467799 ...
下位環境からのサンプルログの抜粋:
Executing command mvn --batch-mode org.apache.maven.plugins:maven-dependency-plugin:3.1.2:resolve-plugins
- この問題は、より低い環境で構築する場合に再現可能です。
- 依存関係の管理要件により、プロジェクトのバージョンが修正されました(例:
5.0.0)。 - エラーは表示されませんが、バージョンが変更されていない場合、パッケージは更新されません。
詳しくは、「Cloud Managerでのプロジェクトバージョンの処理」および「実稼動以外のパイプラインでのSNAPSHOTの使用状況」を参照してください。
原因
パッケージのバージョンが変更されておらず、既に存在する場合、Cloud Managerは下位の環境でのパッケージインストールをスキップします。 実稼動パイプラインでは、ビルドごとに一意のタイムスタンプ付きバージョンを生成することで、これを回避します。一方、下位の環境では、再インストールを強制するためにSNAPSHOT バージョンまたは手動バージョンの増分が必要になります。
解決策 resolution
問題を解決するには、次の手順に従います。
-
Cloud Managerのバージョン処理について
- 実稼動パイプラインでは、Cloud Managerはビルドごとに一意のタイムスタンプ付きバージョンを自動的に生成し、以前のバージョンが存在する場合でもパッケージを再インストールできるようにします。
- 下位環境では、Cloud Managerはバージョンを自動増分せず、開発者ビルドのプロジェクト バージョンが
-SNAPSHOTになると想定しています。
-
オプション 1:下位環境に
-SNAPSHOTを使用- 下位環境でのみ使用される分岐の場合は、
pom.xmlプロジェクトのバージョンを-SNAPSHOTを含めるように更新します(例:<version>5.0.0-SNAPSHOT</version>)。 - すべてのモジュール(
ui.apps、ui.contentなど)がこのSNAPSHOTバージョンを継承していることを確認します。 - これにより、Cloud Managerでは、バージョンが変更されていなくても、これらのアーティファクトを可変アーティファクトとして扱い、再インストールできます。
- 下位環境でのみ使用される分岐の場合は、
-
オプション 2:各デプロイメントのバージョンを手動で増分
- 静的バージョンを使用する必要がある場合(依存関係の管理やその他のポリシーが原因)、デプロイメントごとにプロジェクトのバージョンを手動で下位環境に増分します。
pom.xml - これにより、Cloud Managerはパッケージを新しいバージョンとして認識し、インストールします。
- 静的バージョンを使用する必要がある場合(依存関係の管理やその他のポリシーが原因)、デプロイメントごとにプロジェクトのバージョンを手動で下位環境に増分します。
-
レビューとテスト
- バージョンを変更した後、新しいパイプラインのデプロイメントをトリガーして、
ui.contentパッケージが期待どおりにアップロードされ、インストールされていることを確認します。
- バージョンを変更した後、新しいパイプラインのデプロイメントをトリガーして、